{
    "contractName": "Cash",
    "abi": [
        {
            "constant": true,
            "inputs": [],
            "name": "name",
            "outputs": [
                {
                    "name": "",
                    "type": "string"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "",
                    "type": "address"
                },
                {
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "name": "_deposits",
            "outputs": [
                {
                    "name": "depositAmount",
                    "type": "uint256"
                },
                {
                    "name": "issuedAmount",
                    "type": "uint256"
                },
                {
                    "name": "depositor",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "spender",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "approve",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "totalSupply",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "decimals",
            "outputs": [
                {
                    "name": "",
                    "type": "uint8"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "spender",
                    "type": "address"
                },
                {
                    "name": "addedValue",
                    "type": "uint256"
                }
            ],
            "name": "increaseAllowance",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "balanceOf",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [],
            "name": "renounceOwnership",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "owner",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "isOwner",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "symbol",
            "outputs": [
                {
                    "name": "",
                    "type": "string"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "spender",
                    "type": "address"
                },
                {
                    "name": "subtractedValue",
                    "type": "uint256"
                }
            ],
            "name": "decreaseAllowance",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "recipient",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "transfer",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "isPaused",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "owner",
                    "type": "address"
                },
                {
                    "name": "spender",
                    "type": "address"
                }
            ],
            "name": "allowance",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "_cashtokenName",
            "outputs": [
                {
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "transferOwnership",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "payable": true,
            "stateMutability": "payable",
            "type": "fallback"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "party",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "currency",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "name": "balance",
                    "type": "uint256"
                }
            ],
            "name": "CashIssued",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "party",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "currency",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "name": "redeemedFor",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "name": "balance",
                    "type": "uint256"
                }
            ],
            "name": "CashRedeemed",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "party",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "currency",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "CashDeposits",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "party",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "name": "counterparty",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "currency",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "name": "deposit",
                    "type": "uint256"
                }
            ],
            "name": "CashTransfer",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [],
            "name": "Paused",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [],
            "name": "Unpaused",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "previousOwner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "OwnershipTransferred",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "from",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "name": "to",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "value",
                    "type": "uint256"
                }
            ],
            "name": "Transfer",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "owner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "name": "spender",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "value",
                    "type": "uint256"
                }
            ],
            "name": "Approval",
            "type": "event"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "name",
                    "type": "bytes32"
                },
                {
                    "name": "currency",
                    "type": "bytes32"
                },
                {
                    "name": "owner",
                    "type": "address"
                },
                {
                    "name": "oracle",
                    "type": "address"
                },
                {
                    "name": "token",
                    "type": "address"
                },
                {
                    "name": "fee",
                    "type": "address"
                }
            ],
            "name": "initialize",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "sender",
                    "type": "address"
                }
            ],
            "name": "initialize",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "name": "buyer",
                    "type": "address"
                },
                {
                    "name": "currency",
                    "type": "bytes32"
                }
            ],
            "name": "requestIssue",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "name": "payer",
                    "type": "address"
                },
                {
                    "name": "currency",
                    "type": "bytes32"
                }
            ],
            "name": "payIn",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "tokens",
                    "type": "uint256"
                },
                {
                    "name": "sender",
                    "type": "address"
                }
            ],
            "name": "requestAddToBalance",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "name": "party",
                    "type": "address"
                },
                {
                    "name": "currency",
                    "type": "bytes32"
                }
            ],
            "name": "burnCashTokens",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "tokens",
                    "type": "uint256"
                },
                {
                    "name": "receiver",
                    "type": "address"
                }
            ],
            "name": "requestDeductFromBalance",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "sender",
                    "type": "address"
                },
                {
                    "name": "receiver",
                    "type": "address"
                },
                {
                    "name": "tokens",
                    "type": "uint256"
                }
            ],
            "name": "transferFrom",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [],
            "name": "pause",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [],
            "name": "unpause",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "metadata": "{\"compiler\":{\"version\":\"0.5.7+commit.6da8b019\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"_deposits\",\"outputs\":[{\"name\":\"depositAmount\",\"type\":\"uint256\"},{\"name\":\"issuedAmount\",\"type\":\"uint256\"},{\"name\":\"depositor\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\"},{\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\"},{\"name\":\"party\",\"type\":\"address\"},{\"name\":\"currency\",\"type\":\"bytes32\"}],\"name\":\"burnCashTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"name\",\"type\":\"bytes32\"},{\"name\":\"currency\",\"type\":\"bytes32\"},{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"oracle\",\"type\":\"address\"},{\"name\":\"token\",\"type\":\"address\"},{\"name\":\"fee\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\"},{\"name\":\"payer\",\"type\":\"address\"},{\"name\":\"currency\",\"type\":\"bytes32\"}],\"name\":\"payIn\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isPaused\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"tokens\",\"type\":\"uint256\"},{\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"requestDeductFromBalance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"_cashtokenName\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\"},{\"name\":\"buyer\",\"type\":\"address\"},{\"name\":\"currency\",\"type\":\"bytes32\"}],\"name\":\"requestIssue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"tokens\",\"type\":\"uint256\"},{\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"requestAddToBalance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"party\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"currency\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"balance\",\"type\":\"uint256\"}],\"name\":\"CashIssued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"party\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"currency\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"redeemedFor\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"balance\",\"type\":\"uint256\"}],\"name\":\"CashRedeemed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"party\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"currency\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CashDeposits\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"party\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"counterparty\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"currency\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"deposit\",\"type\":\"uint256\"}],\"name\":\"CashTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\\r\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}.\\r      * Requirements:\\r      * - `spender` cannot be the zero address.\\r\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\\r\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation.\\r For example, if `decimals` equals `2`, a balance of `505` tokens should\\r be displayed to a user as `5.05` (`505 / 10 ** 2`).\\r      * Tokens usually opt for a value of 18, imitating the relationship between\\r Ether and Wei. This is the default value returned by this function, unless\\r it's overridden.\\r      * NOTE: This information is only used for _display_ purposes: it in\\r no way affects any of the arithmetic of the contract, including\\r {IERC20-balanceOf} and {IERC20-transfer}.\\r\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller.\\r      * This is an alternative to {approve} that can be used as a mitigation for\\r problems described in {IERC20-approve}.\\r      * Emits an {Approval} event indicating the updated allowance.\\r      * Requirements:\\r      * - `spender` cannot be the zero address.\\r - `spender` must have allowance for the caller of at least\\r `subtractedValue`.\\r\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller.\\r      * This is an alternative to {approve} that can be used as a mitigation for\\r problems described in {IERC20-approve}.\\r      * Emits an {Approval} event indicating the updated allowance.\\r      * Requirements:\\r      * - `spender` cannot be the zero address.\\r\"},\"initialize(address)\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"isPaused()\":{\"return\":\"True: contract is paused\\rFalse: contract is not paused\\r\"},\"name()\":{\"details\":\"Returns the name of the token.\\r\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner.     * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the\\r name.\\r\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\\r\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}.\\r      * Requirements:\\r      * - `recipient` cannot be the zero address.\\r - the caller must have a balance of at least `amount`.\\r\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{\"isPaused()\":{\"notice\":\"returns whether or not the contract is paused\\r\"}}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/Cash.sol\":\"Cash\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-ethereum-package/contracts/GSN/Context.sol\":{\"keccak256\":\"0x3491510fa4862af1a43f6c860d9cf7392240196540cd3c0eea79d374d419c5a1\",\"urls\":[\"bzzr://5cddbf3b74b775a8670757a6b8e108dac17dac20253f35f4c729e9cb6bea4ed3\"]},\"@openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]},\"@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xd7e8ab76fa35c4d8d35a06a6ed538cadab8b75a1aa00594ced1568b2c0cadde3\",\"urls\":[\"bzzr://b4c855b32d75f2a4969bfbd530b6934b69f12f28584b3746967e1ca64e024bd9\"]},\"@openzeppelin/contracts-ethereum-package/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzzr://cf2d583b8dce38d0617fdcd65f2fd9f126fe17b7f683b5a515ea9d2762d8b062\"]},\"@openzeppelin/upgrades/contracts/Initializable.sol\":{\"keccak256\":\"0x9bfec92e36234ecc99b5d37230acb6cd1f99560233753162204104a4897e8721\",\"urls\":[\"bzzr://f75d88b16fe25a9e19b3512691c496e2bb6d8451bc9a636196c4e17ca9b40201\"]},\"project:/contracts/Cash.sol\":{\"keccak256\":\"0x2c35e82151f765b3daf54141d6a30bebfb8f6b20f25938da8f780a769cdb00f3\",\"urls\":[\"bzzr://9af78138fd0ffa86f66c1b52a0f7aebf0b4c77681bdeff0aa52f2d1091bd1941\"]},\"project:/contracts/interfaces/VerifiedClient.sol\":{\"keccak256\":\"0xb4de3dbb08a33aef4860197790d320239afced5fab06ba8b625398671b76c780\",\"urls\":[\"bzzr://de06105d01c0e25f52ac75c1069e79795cc15cdf0169fc574534910055f8b58d\"]},\"project:/contracts/interfaces/VerifiedRates.sol\":{\"keccak256\":\"0x5c637fe1bca7c152e7fc41237459b65b6147632ad110c747584a6566424cb8da\",\"urls\":[\"bzzr://e9647e2e2b1768908061c2ea083d26bd9b2b764f91b5bc49207f3d30696a7a0c\"]},\"project:/contracts/interfaces/ViaBond.sol\":{\"keccak256\":\"0xfc471512526675edd84249f397bf94b1cef191bcbac1d3da1db24786867c4c62\",\"urls\":[\"bzzr://563d2507340846e5d3ac74b24d529a35e52241971e942784781cb4b48b36c2d6\"]},\"project:/contracts/interfaces/ViaCash.sol\":{\"keccak256\":\"0xe08910b316f239248810cafa5878b1f23e2caa10c019f5e8bfe70cf574eab482\",\"urls\":[\"bzzr://f70f069aca6c303ea77f40af1f9b0359b2e5af3a158bf31d9c46d5a47911d676\"]},\"project:/contracts/interfaces/ViaFactory.sol\":{\"keccak256\":\"0xd71096d3b9b6e130416a346913097dd5a5f1ca16e242778c9e1005058b14b7f2\",\"urls\":[\"bzzr://b2eeb8b364fec878cee9035228fce18a58d7cec7a0be946df554de65dd51332b\"]},\"project:/contracts/interfaces/ViaOracle.sol\":{\"keccak256\":\"0xeb2f7a3ecc458880235ec31ac0db32e20285679772f8fc04a5d338d587e711ae\",\"urls\":[\"bzzr://ee9ed796f36a5f1b111c9aecbfe7544f782d90c0c5d9ef94e6c0ce1806f3eee6\"]},\"project:/contracts/interfaces/ViaToken.sol\":{\"keccak256\":\"0xfe45ec0f3e72d12ca2c0dd9ff16258eec9a30b736dddfc8f799b7f2601b1aae0\",\"urls\":[\"bzzr://3d36c5055be4b4f517ee1670643fa0a139811d45ed844195009b00a8fc666c87\"]},\"project:/contracts/math/FixedPoint.sol\":{\"keccak256\":\"0xb5d4f457a56675a2e841c7bcbb71762e1e5d3ff89800a68cda6830d2361b7a6d\",\"urls\":[\"bzzr://f2eb2bb7e4f7952d86ffcd5848efa13b5895fb38168a8241ba467625d37cf90d\"]},\"project:/contracts/math/LogExpMath.sol\":{\"keccak256\":\"0xe8078460aae016460645c05a09602a8021473127853de5e0910138b885b53471\",\"urls\":[\"bzzr://edec9b90a5f598c7fa82fca8c96de4619e95eb3229b8ca3ecc28cc3bed8f204a\"]},\"project:/contracts/math/Math.sol\":{\"keccak256\":\"0x352df7212aec370f69fe388c57272ea67063e5a057483f048237fd32d19b6ed5\",\"urls\":[\"bzzr://6b4058cb71c9b6e2e0a7f8278bc630f466616de1c3fe430e71e2794a8a104ebd\"]},\"project:/contracts/utilities/ERC20.sol\":{\"keccak256\":\"0x410b1bfe4ae45185f9d971ef497cf28ea3f0efb18ced3760fa781aaa150835a8\",\"urls\":[\"bzzr://ce908881afa94cfdc13d8e9afd3aa1edb50cae8469eee123f1169ffbbb0f7f16\"]},\"project:/contracts/utilities/Pausable.sol\":{\"keccak256\":\"0x96eceae12582eec38cc9706095b6f7d038b00dc36d98a02d234e7051b42a2a6a\",\"urls\":[\"bzzr://e5e1adfa3d22d6769d754f3f7f74eb1b12f5327b56b49584d34490b9d747d9b3\"]},\"project:/contracts/utilities/StringUtils.sol\":{\"keccak256\":\"0xb732e27507ecd8e7606f018dafa15110d93650c14aa9e8a16825871b4a58a05d\",\"urls\":[\"bzzr://e7d1e44d5e8c1c8e4fc71a4818f9ab4b0f4aa4912d159594209572fc5fbad06c\"]}},\"version\":1}",
    "bytecode": "0x6080604052614de7806100136000396000f3fe60806040526004361061019c5760003560e01c80638da5cb5b116100ec578063c4d66de81161008a578063df0534b211610064578063df0534b21461076c578063e5d8fb7514610781578063f2fde38b146107c0578063f80dcb9a146107f35761019c565b8063c4d66de8146106c5578063da49588b146106f8578063dd62ed3e146107315761019c565b8063a457c2d7116100c6578063a457c2d7146105ff578063a9059cbb14610638578063abb58e5914610671578063b187bd26146106b05761019c565b80638da5cb5b146105a45780638f32d59b146105d557806395d89b41146105ea5761019c565b80633950935111610159578063715018a611610133578063715018a6146104e457806378ec9983146104f95780638456cb591461053857806389d29c4c1461054d5761019c565b806339509351146104635780633f4ba83a1461049c57806370a08231146104b15761019c565b806306fdde03146102975780630891568a14610321578063095ea7b31461038157806318160ddd146103ce57806323b872dd146103f5578063313ce56714610438575b346101a657600080fd5b36156101b157600080fd5b609d5460ff16156101c157600080fd5b6101ca3361082c565b15156001146101d857600080fd5b600160d91b6432ba3432b90260005260a26020527fcf0dd33e6d1cf3fd8b7718fa1541ae32bb18d6e1eb90656820d7af12fe7e94715461027f5760a18054600181018255600160d91b6432ba3432b9027faadc37b8ba5645e62f4546802db221593a94729ccbfc5a97d01365a88f649878909101819055905460009190915260a26020527fcf0dd33e6d1cf3fd8b7718fa1541ae32bb18d6e1eb90656820d7af12fe7e9471555b6102953433600160d91b6432ba3432b90261095f565b005b3480156102a357600080fd5b506102ac610d88565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102e65781810151838201526020016102ce565b50505050905090810190601f1680156103135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032d57600080fd5b5061035a6004803603604081101561034457600080fd5b506001600160a01b038135169060200135610e1f565b6040805193845260208401929092526001600160a01b031682820152519081900360600190f35b34801561038d57600080fd5b506103ba600480360360408110156103a457600080fd5b506001600160a01b038135169060200135610e54565b604080519115158252519081900360200190f35b3480156103da57600080fd5b506103e3610e72565b60408051918252519081900360200190f35b34801561040157600080fd5b506103ba6004803603606081101561041857600080fd5b506001600160a01b03813581169160208101359091169060400135610e78565b34801561044457600080fd5b5061044d6113ce565b6040805160ff9092168252519081900360200190f35b34801561046f57600080fd5b506103ba6004803603604081101561048657600080fd5b506001600160a01b0381351690602001356113d3565b3480156104a857600080fd5b5061029561142c565b3480156104bd57600080fd5b506103e3600480360360208110156104d457600080fd5b50356001600160a01b031661147a565b3480156104f057600080fd5b50610295611495565b34801561050557600080fd5b506103ba6004803603606081101561051c57600080fd5b508035906001600160a01b03602082013516906040013561153b565b34801561054457600080fd5b50610295611662565b34801561055957600080fd5b50610295600480360360c081101561057057600080fd5b508035906020810135906001600160a01b0360408201358116916060810135821691608082013581169160a00135166116ad565b3480156105b057600080fd5b506105b96118cc565b604080516001600160a01b039092168252519081900360200190f35b3480156105e157600080fd5b506103ba6118db565b3480156105f657600080fd5b506102ac611901565b34801561060b57600080fd5b506103ba6004803603604081101561062257600080fd5b506001600160a01b038135169060200135611962565b34801561064457600080fd5b506103ba6004803603604081101561065b57600080fd5b506001600160a01b0381351690602001356119d0565b34801561067d57600080fd5b506103ba6004803603606081101561069457600080fd5b508035906001600160a01b0360208201351690604001356119e4565b3480156106bc57600080fd5b506103ba611b0f565b3480156106d157600080fd5b50610295600480360360208110156106e857600080fd5b50356001600160a01b0316611b18565b34801561070457600080fd5b506103e36004803603604081101561071b57600080fd5b50803590602001356001600160a01b0316611c0d565b34801561073d57600080fd5b506103e36004803603604081101561075457600080fd5b506001600160a01b0381358116916020013516611d42565b34801561077857600080fd5b506103e3611d6d565b34801561078d57600080fd5b50610295600480360360608110156107a457600080fd5b508035906001600160a01b036020820135169060400135611d73565b3480156107cc57600080fd5b50610295600480360360208110156107e357600080fd5b50356001600160a01b031661227e565b3480156107ff57600080fd5b506103ba6004803603604081101561081657600080fd5b50803590602001356001600160a01b03166122e3565b600080609d60019054906101000a90046001600160a01b03166001600160a01b03166359dc735c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561087d57600080fd5b505afa158015610891573d6000803e3d6000fd5b505050506040513d60208110156108a757600080fd5b505190506001600160a01b0381166108c357600191505061095a565b806001600160a01b0316633a291033846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561091957600080fd5b505afa15801561092d573d6000803e3d6000fd5b505050506040513d602081101561094357600080fd5b50511561095457600191505061095a565b60009150505b919050565b8261096957600080fd5b600160ca1b661c9958d95a5c1d0260005260a46020527f0467ea4a12823e8ff9242f5579e6cecc18baf2a9374240f1f32ab911c60cf5df5460ff16156109f95760408051600160e51b62461bcd02815260206004820152601060248201527f4c6f636b206f6e206465706f7369747300000000000000000000000000000000604482015290519081900360640190fd5b7f0467ea4a12823e8ff9242f5579e6cecc18baf2a9374240f1f32ab911c60cf5df805460ff191660011790556001600160a01b038216600090815260a360209081526040808320848452909152902054610a539084612418565b6001600160a01b03838116600081815260a3602090815260408083208784528252808320958655600290950180546001600160a01b031916909317909255609d548451600160e21b633cd163c502815260048101879052600160cb1b660acd2c286c2e6d0260248201529451919485946101009092049091169263f3458f1492604480840193829003018186803b158015610aed57600080fd5b505afa158015610b01573d6000803e3d6000fd5b505050506040513d6020811015610b1757600080fd5b50516001600160a01b031614610bc457609f5460a05460408051600160e11b634d3038fd028152600481018690526024810192909252600160e91b623b32b9026044830152516001600160a01b0390921691639a6071fa916064808201926020929091908290030181600087803b158015610b9157600080fd5b505af1158015610ba5573d6000803e3d6000fd5b505050506040513d6020811015610bbb57600080fd5b50519050610cec565b609f5460a05460408051600160e11b633ce1098302815260048101929092526002602483015260056044830152516001600160a01b0390921691639a6071fa91859173__stringutils___________________________916379c21306916064808301926020929190829003018186803b158015610c4157600080fd5b505af4158015610c55573d6000803e3d6000fd5b505050506040513d6020811015610c6b57600080fd5b50516040805163ffffffff851660e01b815260048101939093526024830191909152600160f11b6132b90260448301525160648083019260209291908290030181600087803b158015610cbd57600080fd5b505af1158015610cd1573d6000803e3d6000fd5b505050506040513d6020811015610ce757600080fd5b505190505b604080518381526020810186905281516001600160a01b038616927f4360f0decf98093daff370b9cd94b67d703802d9d2a864467a376c2847e125c6928290030190a2610d438383610d3e8488612475565b6124f5565b5050600160ca1b661c9958d95a5c1d02600052505060a46020527f0467ea4a12823e8ff9242f5579e6cecc18baf2a9374240f1f32ab911c60cf5df805460ff19169055565b60368054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610e145780601f10610de957610100808354040283529160200191610e14565b820191906000526020600020905b815481529060010190602001808311610df757829003601f168201915b505050505090505b90565b60a36020908152600092835260408084209091529082529020805460018201546002909201549091906001600160a01b031683565b6000610e68610e616125b1565b84846125b5565b5060015b92915050565b60355490565b609d5460009060ff1615610e8b57600080fd5b610e948461082c565b1515600114610ea257600080fd5b610eab8361082c565b1515600114610eb957600080fd5b81610ec38561147a565b1015610f0357604051600160e51b62461bcd028152600401808060200182810382526021815260200180614cbe6021913960400191505060405180910390fd5b6001600160a01b038316301415610f4157610f2c8285600160d01b6572656465656d02306126a7565b15610f39575060016113c7565b5060006113c7565b609d5460408051600160e01b63f429f19b0281526001600160a01b03868116600483015291516101009093049091169163f429f19b91602480820192602092909190829003018186803b158015610f9757600080fd5b505afa158015610fab573d6000803e3d6000fd5b505050506040513d6020811015610fc157600080fd5b5051600160cb1b660acd2c286c2e6d02141561116757600160c11b673a3930b739b332b90260005260a46020527f1ac85a9df93a32abf6591c4c13ec3449eff3d765e853a5bcded52f9d6e893dbd5460ff16156110685760408051600160e51b62461bcd02815260206004820152601060248201527f4c6f636b206f6e207472616e7366657200000000000000000000000000000000604482015290519081900360640190fd5b600160c11b673a3930b739b332b902600090815260a46020527f1ac85a9df93a32abf6591c4c13ec3449eff3d765e853a5bcded52f9d6e893dbd805460ff1916600117905560a05460408051600160e01b63e5d8fb75028152600481018690526001600160a01b038881166024830152604482019390935290519186169263e5d8fb759260648084019382900301818387803b15801561110757600080fd5b505af115801561111b573d6000803e3d6000fd5b5050600160c11b673a3930b739b332b902600052505060a4602052507f1ac85a9df93a32abf6591c4c13ec3449eff3d765e853a5bcded52f9d6e893dbd805460ff1916905560016113c7565b609d5460408051600160e01b63f429f19b0281526001600160a01b03868116600483015291516101009093049091169163f429f19b91602480820192602092909190829003018186803b1580156111bd57600080fd5b505afa1580156111d1573d6000803e3d6000fd5b505050506040513d60208110156111e757600080fd5b5051600160ca1b66159a58509bdb9902141561129d5760a05460408051600160e31b6306270111028152600481018590526001600160a01b03878116602483015260448201939093523060648201529051918516916331380888916084808201926020929091908290030181600087803b15801561126457600080fd5b505af1158015611278573d6000803e3d6000fd5b505050506040513d602081101561128e57600080fd5b505115610f39575060016113c7565b609d5460408051600160e01b63f429f19b0281526001600160a01b03868116600483015291516101009093049091169163f429f19b91602480820192602092909190829003018186803b1580156112f357600080fd5b505afa158015611307573d6000803e3d6000fd5b505050506040513d602081101561131d57600080fd5b50517f566961426f6e64546f6b656e000000000000000000000000000000000000000014156113ad5760a05460408051600160e41b6305a341b9028152600481018590526001600160a01b0387811660248301526044820193909352306064820152905191851691635a341b90916084808201926020929091908290030181600087803b15801561126457600080fd5b610f2c8285600160c11b673a3930b739b332b902866126a7565b9392505050565b601290565b6000610e686113e06125b1565b8461142785603460006113f16125b1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6140a216565b6125b5565b336114356118cc565b6001600160a01b0316816001600160a01b031614806114665750609d546001600160a01b0382811661010090920416145b61146f57600080fd5b6114776140ff565b50565b6001600160a01b031660009081526033602052604090205490565b61149d6118db565b6114f15760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b606a546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3606a80546001600160a01b0319169055565b6001600160a01b038216600090815260a3602090815260408083208484529091528120600101543390829061159e90611575908890614134565b6001600160a01b038716600090815260a360209081526040808320898452909152902054612475565b6001600160a01b038616600090815260a3602090815260408083208884529091529020549091506115cf9082614216565b6001600160a01b038616600090815260a3602090815260408083208884529091529020556115fd8587614276565b6001600160a01b038516600090815260a36020908152604080832087845290915290206001015461162e9087614216565b6001600160a01b03909516600090815260a36020908152604080832096835295905293909320600101939093559392505050565b3361166b6118cc565b6001600160a01b0316816001600160a01b0316148061169c5750609d546001600160a01b0382811661010090920416145b6116a557600080fd5b611477614375565b600054610100900460ff16806116c657506116c66143ad565b806116d4575060005460ff16155b61171257604051600160e51b62461bcd02815260040180806020018281038252602e815260200180614cdf602e913960400191505060405180910390fd5b600054610100900460ff1615801561173d576000805460ff1961ff0019909116610100171660011790555b61174685611b18565b609d8054610100600160a81b0319163361010002179055609f80546001600160a01b0319166001600160a01b0386161790556040805160208082018a90528251808303909101815290820190915261179d906143b3565b60408051600160e01b63f921e647028152600481018990526000602482018190526005604483015291516118919273__stringutils___________________________9263f921e6479260648083019392829003018186803b15801561180257600080fd5b505af4158015611816573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561183f57600080fd5b81019080805164010000000081111561185757600080fd5b8201602081018481111561186a57600080fd5b815164010000000081118282018710171561188457600080fd5b50509291905050506143c6565b60a0869055609e80546001600160a01b0319166001600160a01b03841617905580156118c3576000805461ff00191690555b50505050505050565b606a546001600160a01b031690565b606a546000906001600160a01b03166118f26125b1565b6001600160a01b031614905090565b60378054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610e145780601f10610de957610100808354040283529160200191610e14565b6000610e6861196f6125b1565b8461142785604051806060016040528060258152602001614d9760259139603460006119996125b1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff6143d916565b6000610e686119dd6125b1565b8484614473565b609d54600090339060ff16156119f957600080fd5b600083815260a26020526040902054611a4c5760a180546001810182557faadc37b8ba5645e62f4546802db221593a94729ccbfc5a97d01365a88f6498780184905554600084815260a260205260409020555b6001600160a01b038416600090815260a36020908152604080832086845290915290206002810180546001600160a01b0319163317905554611a8e9086612418565b6001600160a01b038516600081815260a360209081526040808320888452825291829020939093558051868152928301889052805191927f4360f0decf98093daff370b9cd94b67d703802d9d2a864467a376c2847e125c6929081900390910190a2611b078484610d3e88670de0b6b3a7640000612475565b509392505050565b609d5460ff1690565b600054610100900460ff1680611b315750611b316143ad565b80611b3f575060005460ff16155b611b7d57604051600160e51b62461bcd02815260040180806020018281038252602e815260200180614cdf602e913960400191505060405180910390fd5b600054610100900460ff16158015611ba8576000805460ff1961ff0019909116610100171660011790555b606a80546001600160a01b0319166001600160a01b0384811691909117918290556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38015611c09576000805461ff00191690555b5050565b609d5460408051600160e01b63f429f19b028152336004820152905160009261010090046001600160a01b03169163f429f19b916024808301926020929190829003018186803b158015611c6057600080fd5b505afa158015611c74573d6000803e3d6000fd5b505050506040513d6020811015611c8a57600080fd5b5051600160cb1b660acd2c286c2e6d021480611d2f5750609d5460408051600160e01b63f429f19b02815233600482015290516101009092046001600160a01b03169163f429f19b91602480820192602092909190829003018186803b158015611cf357600080fd5b505afa158015611d07573d6000803e3d6000fd5b505050506040513d6020811015611d1d57600080fd5b5051600160ca1b66159a58509bdb9902145b611d3857600080fd5b6113c783836145d7565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b60a05481565b609d5460408051600160e01b63f429f19b02815233600482015290516101009092046001600160a01b03169163f429f19b91602480820192602092909190829003018186803b158015611dc557600080fd5b505afa158015611dd9573d6000803e3d6000fd5b505050506040513d6020811015611def57600080fd5b5051600160cb1b660acd2c286c2e6d021480611e915750609d60019054906101000a90046001600160a01b03166001600160a01b031663d11322d4826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611e5f57600080fd5b505afa158015611e73573d6000803e3d6000fd5b505050506040513d6020811015611e8957600080fd5b505115156001145b611e9a57600080fd5b609d5460408051600160e21b633444c8b502815260048101849052905160019261010090046001600160a01b03169163d11322d4916024808301926020929190829003018186803b158015611eee57600080fd5b505afa158015611f02573d6000803e3d6000fd5b505050506040513d6020811015611f1857600080fd5b50511515600114156120cd57609d5460408051600160e01b63b946762902815260048101859052905160009261010090046001600160a01b03169163b9467629916024808301926020929190829003018186803b158015611f7857600080fd5b505afa158015611f8c573d6000803e3d6000fd5b505050506040513d6020811015611fa257600080fd5b505160408051600160e01b6323b872dd0281523360048201523060248201526044810188905290519192506001600160a01b038316916323b872dd916064808201926020929091908290030181600087803b15801561200057600080fd5b505af1158015612014573d6000803e3d6000fd5b505050506040513d602081101561202a57600080fd5b5051609d5460408051600160e01b63b94676290281526004810187905290519294506000926120b89261010090046001600160a01b03169163b9467629916024808301926020929190829003018186803b15801561208757600080fd5b505afa15801561209b573d6000803e3d6000fd5b505050506040513d60208110156120b157600080fd5b505161462b565b90506120c486826146ba565b95505050612214565b609d5460408051600160e21b633cd163c502815260048101859052600160cb1b660acd2c286c2e6d026024820152905160009261010090046001600160a01b03169163f3458f14916044808301926020929190829003018186803b15801561213457600080fd5b505afa158015612148573d6000803e3d6000fd5b505050506040513d602081101561215e57600080fd5b505190506001600160a01b038116301461220557806001600160a01b031663f80dcb9a86866040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050602060405180830381600087803b1580156121d257600080fd5b505af11580156121e6573d6000803e3d6000fd5b505050506040513d60208110156121fc57600080fd5b50519150612212565b61220f85856146c6565b91505b505b801561227857600082815260a2602052604090205461226d5760a180546001810182557faadc37b8ba5645e62f4546802db221593a94729ccbfc5a97d01365a88f6498780183905554600083815260a260205260409020555b61227884848461095f565b50505050565b6122866118db565b6122da5760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b611477816146ea565b609d5460408051600160e01b63f429f19b028152336004820152905160009261010090046001600160a01b03169163f429f19b916024808301926020929190829003018186803b15801561233657600080fd5b505afa15801561234a573d6000803e3d6000fd5b505050506040513d602081101561236057600080fd5b5051600160cb1b660acd2c286c2e6d0214806124055750609d5460408051600160e01b63f429f19b02815233600482015290516101009092046001600160a01b03169163f429f19b91602480820192602092909190829003018186803b1580156123c957600080fd5b505afa1580156123dd573d6000803e3d6000fd5b505050506040513d60208110156123f357600080fd5b5051600160ca1b66159a58509bdb9902145b61240e57600080fd5b6113c783836146c6565b6000828201838110156113c75760408051600160e51b62461bcd02815260206004820152600c60248201527f4144445f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600082820283158061248f57508284828161248c57fe5b04145b6124e35760408051600160e51b62461bcd02815260206004820152600c60248201527f4d554c5f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b670de0b6b3a764000090049392505050565b6001600160a01b038316600090815260a3602090815260408083208584529091529020600101546125269082612418565b6001600160a01b038416600090815260a360209081526040808320868452909152902060010155612557838261478e565b826001600160a01b03167fc7d7368f26c07362606b436c035ac173533556512791d04904e9ed5ee30b36d360a0548361258f8761147a565b60408051938452602084019290925282820152519081900360600190a2505050565b3390565b6001600160a01b0383166125fd57604051600160e51b62461bcd028152600401808060200182810382526024815260200180614d736024913960400191505060405180910390fd5b6001600160a01b03821661264557604051600160e51b62461bcd028152600401808060200182810382526022815260200180614c766022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60a1546000908190815b81811080156126c05750600088115b15614096576001600160a01b038716600090815260a36020526040812060a18054919291849081106126ee57fe5b906000526020600020015481526020019081526020016000206001015460001415801561276157506001600160a01b038716600090815260a36020526040812060a180549192918490811061273f57fe5b9060005260206000200154815260200190815260200160002060000154600014155b1561408e5760006128106127c58a60a360008c6001600160a01b03166001600160a01b03168152602001908152602001600020600060a187815481106127a357fe5b9060005260206000200154815260200190815260200160002060010154614134565b6001600160a01b038a16600090815260a36020526040812060a18054919291879081106127ee57fe5b9060005260206000200154815260200190815260200160002060000154612475565b90508860a360008a6001600160a01b03166001600160a01b03168152602001908152602001600020600060a1858154811061284757fe5b9060005260206000200154815260200190815260200160002060010154101580156128725750600081115b80156128c357506001600160a01b038816600090815260a36020526040812060a1805484939190869081106128a357fe5b906000526020600020015481526020019081526020016000206000015410155b156133ac57600160d01b6572656465656d0260005260a4602052600080516020614d0d8339815191525460ff161561293d5760408051600160e51b62461bcd0281526020600482015260126024820152600160711b712637b1b59037b7103932b232b6b83a34b7b702604482015290519081900360640190fd5b600080516020614d0d833981519152805460ff191660011790556001600160a01b038816600090815260a36020526040812060a180546129a69391908690811061298357fe5b906000526020600020015481526020019081526020016000206000015482614216565b6001600160a01b038916600090815260a36020526040812060a18054919291869081106129cf57fe5b9060005260206000200154815260200190815260200160002060000181905550612a4960a360008a6001600160a01b03166001600160a01b03168152602001908152602001600020600060a18581548110612a2657fe5b90600052602060002001548152602001908152602001600020600101548a614216565b6001600160a01b038916600090815260a36020526040812060a1805491929186908110612a7257fe5b906000526020600020015481526020019081526020016000206001018190555086600160d01b6572656465656d02141561309157612ab0888a614276565b612ae3888a8360a18681548110612ac357fe5b9060005260206000200154600160ba1b681dda5d1a191c985ddb02614883565b809250819a50505060a18281548110612af857fe5b9060005260206000200154600160d91b6432ba3432b9021415612b51576040516001600160a01b0389169082156108fc029083906000818181858888f19350505050158015612b4b573d6000803e3d6000fd5b50613019565b609d60019054906101000a90046001600160a01b03166001600160a01b031663d11322d460a18481548110612b8257fe5b90600052602060002001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612bc157600080fd5b505afa158015612bd5573d6000803e3d6000fd5b505050506040513d6020811015612beb57600080fd5b5051151560011415612d1757609d5460a1805460009261010090046001600160a01b03169163b94676299186908110612c2057fe5b90600052602060002001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612c5f57600080fd5b505afa158015612c73573d6000803e3d6000fd5b505050506040513d6020811015612c8957600080fd5b505160408051600160e01b63a9059cbb0281526001600160a01b038c811660048301526024820186905291519293509083169163a9059cbb916044808201926020929091908290030181600087803b158015612ce457600080fd5b505af1158015612cf8573d6000803e3d6000fd5b505050506040513d6020811015612d0e57600080fd5b50613019915050565b609d5460a1805460009261010090046001600160a01b03169163f3458f149186908110612d4057fe5b90600052602060002001546040518263ffffffff1660e01b81526004018082815260200180600160cb1b660acd2c286c2e6d0281525060200191505060206040518083038186803b158015612d9457600080fd5b505afa158015612da8573d6000803e3d6000fd5b505050506040513d6020811015612dbe57600080fd5b50516001600160a01b031614612efa57609d5460a1805460009261010090046001600160a01b03169163f3458f149186908110612df757fe5b90600052602060002001546040518263ffffffff1660e01b81526004018082815260200180600160cb1b660acd2c286c2e6d0281525060200191505060206040518083038186803b158015612e4b57600080fd5b505afa158015612e5f573d6000803e3d6000fd5b505050506040513d6020811015612e7557600080fd5b505190506001600160a01b038116301415612e9a57612e94828a6145d7565b50612b4b565b806001600160a01b031663da49588b838b6040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050602060405180830381600087803b158015612ce457600080fd5b60a2600060a18481548110612f0b57fe5b906000526020600020015481526020019081526020016000205460001461301957609f546001600160a01b03898116600090815260a36020526040812060a18054939094169363b1fa13509391929187908110612f6457fe5b9060005260206000200154815260200190815260200160002060020160009054906101000a90046001600160a01b03168a60a18681548110612fa257fe5b60009182526020822001546040805163ffffffff871660e01b81526001600160a01b03958616600482015293909416602484015260448301526064820186905291516084808301939282900301818387803b15801561300057600080fd5b505af1158015613014573d6000803e3d6000fd5b505050505b876001600160a01b03167ff87471333b4bf64674cd46ef8018795ebfc5778cb718960a80d805ae2c6c023260a1848154811061305157fe5b9060005260206000200154838c6130678d61147a565b604080519485526020850193909352838301919091526060830152519081900360800190a2613373565b86600160c11b673a3930b739b332b9021415613373576130b1888a614276565b6130e3888a8360a186815481106130c457fe5b9060005260206000200154600160c11b673a3930b739b332b902614883565b90995090506130f2868a61478e565b6001600160a01b038616600090815260a36020526040812060a180546131419391908690811061311e57fe5b906000526020600020015481526020019081526020016000206000015482612418565b6001600160a01b038716600090815260a36020526040812060a180549192918690811061316a57fe5b90600052602060002001548152602001908152602001600020600001819055506131e460a36000886001600160a01b03166001600160a01b03168152602001908152602001600020600060a185815481106131c157fe5b90600052602060002001548152602001908152602001600020600101548a612418565b6001600160a01b038716600090815260a36020526040812060a180549192918690811061320d57fe5b906000526020600020015481526020019081526020016000206001018190555060a36000896001600160a01b03166001600160a01b03168152602001908152602001600020600060a1848154811061326157fe5b9060005260206000200154815260200190815260200160002060020160009054906101000a90046001600160a01b031660a36000886001600160a01b03166001600160a01b03168152602001908152602001600020600060a185815481106132c557fe5b9060005260206000200154815260200190815260200160002060020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550856001600160a01b0316886001600160a01b03167fd172b07a50f3a175b2e227bc1ac96b00c8cd4547c3471f8190122b7f7494cfed60a1858154811061334757fe5b60009182526020918290200154604080519182529181018e905280820186905290519081900360600190a35b600160d01b6572656465656d02600090815260a4602052600080516020614d0d833981519152805460ff1916905598506001935061408c565b6001600160a01b038816600090815260a36020526040812060a18054839190869081106133d557fe5b90600052602060002001548152602001908152602001600020600101541180156133ff5750600081115b1561408c57600160d01b6572656465656d0260005260a4602052600080516020614d0d8339815191525460ff16156134795760408051600160e51b62461bcd0281526020600482015260126024820152600160711b712637b1b59037b7103932b232b6b83a34b7b702604482015290519081900360640190fd5b600160d01b6572656465656d02600081905260a4602052600080516020614d0d833981519152805460ff191660011790558990881415613bbe5761350d8960a360008c6001600160a01b03166001600160a01b03168152602001908152602001600020600060a187815481106134eb57fe5b9060005260206000200154815260200190815260200160002060010154614276565b6135c08960a360008c6001600160a01b03166001600160a01b03168152602001908152602001600020600060a1878154811061354557fe5b906000526020600020015481526020019081526020016000206001015460a360008d6001600160a01b03166001600160a01b03168152602001908152602001600020600060a1888154811061359657fe5b906000526020600020015481526020019081526020016000206000015460a18781548110612ac357fe5b809350819b50505060a183815481106135d557fe5b9060005260206000200154600160d91b6432ba3432b902141561362e576040516001600160a01b038a169083156108fc029084906000818181858888f19350505050158015613628573d6000803e3d6000fd5b50613af6565b609d60019054906101000a90046001600160a01b03166001600160a01b031663d11322d460a1858154811061365f57fe5b90600052602060002001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561369e57600080fd5b505afa1580156136b2573d6000803e3d6000fd5b505050506040513d60208110156136c857600080fd5b50511515600114156137f457609d5460a1805460009261010090046001600160a01b03169163b946762991879081106136fd57fe5b90600052602060002001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561373c57600080fd5b505afa158015613750573d6000803e3d6000fd5b505050506040513d602081101561376657600080fd5b505160408051600160e01b63a9059cbb0281526001600160a01b038d811660048301526024820187905291519293509083169163a9059cbb916044808201926020929091908290030181600087803b1580156137c157600080fd5b505af11580156137d5573d6000803e3d6000fd5b505050506040513d60208110156137eb57600080fd5b50613af6915050565b609d5460a1805460009261010090046001600160a01b03169163f3458f14918790811061381d57fe5b90600052602060002001546040518263ffffffff1660e01b81526004018082815260200180600160cb1b660acd2c286c2e6d0281525060200191505060206040518083038186803b15801561387157600080fd5b505afa158015613885573d6000803e3d6000fd5b505050506040513d602081101561389b57600080fd5b50516001600160a01b0316146139d757609d5460a1805460009261010090046001600160a01b03169163f3458f1491879081106138d457fe5b90600052602060002001546040518263ffffffff1660e01b81526004018082815260200180600160cb1b660acd2c286c2e6d0281525060200191505060206040518083038186803b15801561392857600080fd5b505afa15801561393c573d6000803e3d6000fd5b505050506040513d602081101561395257600080fd5b505190506001600160a01b03811630141561397757613971838b6145d7565b50613628565b806001600160a01b031663da49588b848c6040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050602060405180830381600087803b1580156137c157600080fd5b60a2600060a185815481106139e857fe5b9060005260206000200154815260200190815260200160002054600014613af657609f546001600160a01b038a8116600090815260a36020526040812060a18054939094169363b1fa13509391929188908110613a4157fe5b9060005260206000200154815260200190815260200160002060020160009054906101000a90046001600160a01b03168b60a18781548110613a7f57fe5b60009182526020822001546040805163ffffffff871660e01b81526001600160a01b03958616600482015293909416602484015260448301526064820187905291516084808301939282900301818387803b158015613add57600080fd5b505af1158015613af1573d6000803e3d6000fd5b505050505b886001600160a01b03167ff87471333b4bf64674cd46ef8018795ebfc5778cb718960a80d805ae2c6c023260a18581548110613b2e57fe5b90600052602060002001548460a360008e6001600160a01b03166001600160a01b03168152602001908152602001600020600060a18981548110613b6e57fe5b9060005260206000200154815260200190815260200160002060010154613b948e61147a565b604080519485526020850193909352838301919091526060830152519081900360800190a2613f4f565b87600160c11b673a3930b739b332b9021415613f4f57613c0c8960a360008c6001600160a01b03166001600160a01b03168152602001908152602001600020600060a187815481106134eb57fe5b613cbf8960a360008c6001600160a01b03166001600160a01b03168152602001908152602001600020600060a18781548110613c4457fe5b906000526020600020015481526020019081526020016000206001015460a360008d6001600160a01b03166001600160a01b03168152602001908152602001600020600060a18881548110613c9557fe5b906000526020600020015481526020019081526020016000206000015460a187815481106130c457fe5b909a509150613cce878b61478e565b6001600160a01b038716600090815260a36020526040812060a18054613d1d93919087908110613cfa57fe5b906000526020600020015481526020019081526020016000206000015483612418565b6001600160a01b038816600090815260a36020526040812060a1805491929187908110613d4657fe5b9060005260206000200154815260200190815260200160002060000181905550613dc060a36000896001600160a01b03166001600160a01b03168152602001908152602001600020600060a18681548110613d9d57fe5b90600052602060002001548152602001908152602001600020600101548b612418565b6001600160a01b038816600090815260a36020526040812060a1805491929187908110613de957fe5b906000526020600020015481526020019081526020016000206001018190555060a360008a6001600160a01b03166001600160a01b03168152602001908152602001600020600060a18581548110613e3d57fe5b9060005260206000200154815260200190815260200160002060020160009054906101000a90046001600160a01b031660a36000896001600160a01b03166001600160a01b03168152602001908152602001600020600060a18681548110613ea157fe5b9060005260206000200154815260200190815260200160002060020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550866001600160a01b0316896001600160a01b03167fd172b07a50f3a175b2e227bc1ac96b00c8cd4547c3471f8190122b7f7494cfed60a18681548110613f2357fe5b60009182526020918290200154604080519182529181018f905280820187905290519081900360600190a35b613fa98160a360008c6001600160a01b03166001600160a01b03168152602001908152602001600020600060a18781548110613f8757fe5b9060005260206000200154815260200190815260200160002060010154614216565b9950600060a360008b6001600160a01b03166001600160a01b03168152602001908152602001600020600060a18681548110613fe157fe5b9060005260206000200154815260200190815260200160002060000181905550600060a360008b6001600160a01b03166001600160a01b03168152602001908152602001600020600060a1868154811061403757fe5b600091825260208083209091015483528281019390935260409091018120600190810193909355600160d01b6572656465656d02905260a49052600080516020614d0d833981519152805460ff191690559450505b505b6001016126b1565b50909695505050505050565b6000828201838110156113c75760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b609d805460ff191690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a1565b60008161418b5760408051600160e51b62461bcd02815260206004820152600d60248201527f5a45524f5f4449564953494f4e00000000000000000000000000000000000000604482015290519081900360640190fd5b8261419857506000610e6c565b670de0b6b3a7640000838102908482816141ae57fe5b04146142045760408051600160e51b62461bcd02815260206004820152600c60248201527f4449565f494e5445524e414c0000000000000000000000000000000000000000604482015290519081900360640190fd5b82818161420d57fe5b04915050610e6c565b6000828211156142705760408051600160e51b62461bcd02815260206004820152600c60248201527f5355425f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b6001600160a01b0382166142be57604051600160e51b62461bcd028152600401808060200182810382526021815260200180614d2d6021913960400191505060405180910390fd5b61430181604051806060016040528060228152602001614c2e602291396001600160a01b038516600090815260336020526040902054919063ffffffff6143d916565b6001600160a01b03831660009081526033602052604090205560355461432d908263ffffffff614b3016565b6035556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b609d805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b303b1590565b8051611c09906036906020840190614b72565b8051611c09906037906020840190614b72565b6000818484111561446b57604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614430578181015183820152602001614418565b50505050905090810190601f16801561445d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0383166144bb57604051600160e51b62461bcd028152600401808060200182810382526025815260200180614d4e6025913960400191505060405180910390fd5b6001600160a01b03821661450357604051600160e51b62461bcd028152600401808060200182810382526023815260200180614c0b6023913960400191505060405180910390fd5b61454681604051806060016040528060268152602001614c98602691396001600160a01b038616600090815260336020526040902054919063ffffffff6143d916565b6001600160a01b03808516600090815260336020526040808220939093559084168152205461457b908263ffffffff6140a216565b6001600160a01b0380841660008181526033602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000826145e33061147a565b106145fb576145f3308385614473565b506000610e6c565b600061460f8461460a3061147a565b614216565b9050614624308461461f3061147a565b614473565b9050610e6c565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561466757600080fd5b505afa15801561467b573d6000803e3d6000fd5b505050506040513d602081101561469157600080fd5b505160ff16905060006146a5601283614216565b600a0a670de0b6b3a764000002949350505050565b60006113c78383612475565b6000826146d28361147a565b106145f3576146e2823085614473565b506001610e6c565b6001600160a01b03811661473257604051600160e51b62461bcd028152600401808060200182810382526026815260200180614c506026913960400191505060405180910390fd5b606a546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3606a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382166147ec5760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6035546147ff908263ffffffff6140a216565b6035556001600160a01b03821660009081526033602052604090205461482b908263ffffffff6140a216565b6001600160a01b03831660008181526033602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600080600083600160c11b673a3930b739b332b902141561492f57609e5460408051600160e01b63e5f3d3a5028152600160b01b6972656d697474616e636502600482015290516001600160a01b039092169163e5f3d3a591602480820192602092909190829003018186803b1580156148fc57600080fd5b505afa158015614910573d6000803e3d6000fd5b505050506040513d602081101561492657600080fd5b505190506149d2565b83600160ba1b681dda5d1a191c985ddb0214156149d257609e5460408051600160e01b63e5f3d3a5028152600160ba1b681dda5d1a191c985ddb02600482015290516001600160a01b039092169163e5f3d3a591602480820192602092909190829003018186803b1580156149a357600080fd5b505afa1580156149b7573d6000803e3d6000fd5b505050506040513d60208110156149cd57600080fd5b505190505b8015614b2257609e5460408051600160e01b63c561d4b702815290516000926001600160a01b03169163c561d4b7916004808301926020929190829003018186803b158015614a2057600080fd5b505afa158015614a34573d6000803e3d6000fd5b505050506040513d6020811015614a4a57600080fd5b505190506001600160a01b03811615614b2057614a6c898261461f858c612475565b6001600160a01b038116600090815260a360209081526040808320898452909152902060010154614aa19061460a848b612475565b6001600160a01b038216600090815260a3602090815260408083208a84529091529020600181019190915554614adb9061460a848a612475565b6001600160a01b038216600090815260a3602090815260408083208a8452909152902055614b0d8861460a8482612475565b9750614b1d8761460a848a612475565b96505b505b509496939550929350505050565b60006113c783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506143d9565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614bb357805160ff1916838001178555614be0565b82800160010185558215614be0579182015b82811115614be0578251825591602001919060010190614bc5565b50614bec929150614bf0565b5090565b610e1c91905b80821115614bec5760008155600101614bf656fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e73756666696369656e742062616c616e636520666f72207472616e73666572436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a656494d05dfec762f4feefa20f3d96074a9e9096c817198523a2600cbbeee33cc1f345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa165627a7a72305820b618b1cf1f336d821acff018f29e9c8322e24c00ab2e500ac130bd4c564170250029",
    "deployedBytecode": "0x60806040526004361061019c5760003560e01c80638da5cb5b116100ec578063c4d66de81161008a578063df0534b211610064578063df0534b21461076c578063e5d8fb7514610781578063f2fde38b146107c0578063f80dcb9a146107f35761019c565b8063c4d66de8146106c5578063da49588b146106f8578063dd62ed3e146107315761019c565b8063a457c2d7116100c6578063a457c2d7146105ff578063a9059cbb14610638578063abb58e5914610671578063b187bd26146106b05761019c565b80638da5cb5b146105a45780638f32d59b146105d557806395d89b41146105ea5761019c565b80633950935111610159578063715018a611610133578063715018a6146104e457806378ec9983146104f95780638456cb591461053857806389d29c4c1461054d5761019c565b806339509351146104635780633f4ba83a1461049c57806370a08231146104b15761019c565b806306fdde03146102975780630891568a14610321578063095ea7b31461038157806318160ddd146103ce57806323b872dd146103f5578063313ce56714610438575b346101a657600080fd5b36156101b157600080fd5b609d5460ff16156101c157600080fd5b6101ca3361082c565b15156001146101d857600080fd5b600160d91b6432ba3432b90260005260a26020527fcf0dd33e6d1cf3fd8b7718fa1541ae32bb18d6e1eb90656820d7af12fe7e94715461027f5760a18054600181018255600160d91b6432ba3432b9027faadc37b8ba5645e62f4546802db221593a94729ccbfc5a97d01365a88f649878909101819055905460009190915260a26020527fcf0dd33e6d1cf3fd8b7718fa1541ae32bb18d6e1eb90656820d7af12fe7e9471555b6102953433600160d91b6432ba3432b90261095f565b005b3480156102a357600080fd5b506102ac610d88565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102e65781810151838201526020016102ce565b50505050905090810190601f1680156103135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032d57600080fd5b5061035a6004803603604081101561034457600080fd5b506001600160a01b038135169060200135610e1f565b6040805193845260208401929092526001600160a01b031682820152519081900360600190f35b34801561038d57600080fd5b506103ba600480360360408110156103a457600080fd5b506001600160a01b038135169060200135610e54565b604080519115158252519081900360200190f35b3480156103da57600080fd5b506103e3610e72565b60408051918252519081900360200190f35b34801561040157600080fd5b506103ba6004803603606081101561041857600080fd5b506001600160a01b03813581169160208101359091169060400135610e78565b34801561044457600080fd5b5061044d6113ce565b6040805160ff9092168252519081900360200190f35b34801561046f57600080fd5b506103ba6004803603604081101561048657600080fd5b506001600160a01b0381351690602001356113d3565b3480156104a857600080fd5b5061029561142c565b3480156104bd57600080fd5b506103e3600480360360208110156104d457600080fd5b50356001600160a01b031661147a565b3480156104f057600080fd5b50610295611495565b34801561050557600080fd5b506103ba6004803603606081101561051c57600080fd5b508035906001600160a01b03602082013516906040013561153b565b34801561054457600080fd5b50610295611662565b34801561055957600080fd5b50610295600480360360c081101561057057600080fd5b508035906020810135906001600160a01b0360408201358116916060810135821691608082013581169160a00135166116ad565b3480156105b057600080fd5b506105b96118cc565b604080516001600160a01b039092168252519081900360200190f35b3480156105e157600080fd5b506103ba6118db565b3480156105f657600080fd5b506102ac611901565b34801561060b57600080fd5b506103ba6004803603604081101561062257600080fd5b506001600160a01b038135169060200135611962565b34801561064457600080fd5b506103ba6004803603604081101561065b57600080fd5b506001600160a01b0381351690602001356119d0565b34801561067d57600080fd5b506103ba6004803603606081101561069457600080fd5b508035906001600160a01b0360208201351690604001356119e4565b3480156106bc57600080fd5b506103ba611b0f565b3480156106d157600080fd5b50610295600480360360208110156106e857600080fd5b50356001600160a01b0316611b18565b34801561070457600080fd5b506103e36004803603604081101561071b57600080fd5b50803590602001356001600160a01b0316611c0d565b34801561073d57600080fd5b506103e36004803603604081101561075457600080fd5b506001600160a01b0381358116916020013516611d42565b34801561077857600080fd5b506103e3611d6d565b34801561078d57600080fd5b50610295600480360360608110156107a457600080fd5b508035906001600160a01b036020820135169060400135611d73565b3480156107cc57600080fd5b50610295600480360360208110156107e357600080fd5b50356001600160a01b031661227e565b3480156107ff57600080fd5b506103ba6004803603604081101561081657600080fd5b50803590602001356001600160a01b03166122e3565b600080609d60019054906101000a90046001600160a01b03166001600160a01b03166359dc735c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561087d57600080fd5b505afa158015610891573d6000803e3d6000fd5b505050506040513d60208110156108a757600080fd5b505190506001600160a01b0381166108c357600191505061095a565b806001600160a01b0316633a291033846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561091957600080fd5b505afa15801561092d573d6000803e3d6000fd5b505050506040513d602081101561094357600080fd5b50511561095457600191505061095a565b60009150505b919050565b8261096957600080fd5b600160ca1b661c9958d95a5c1d0260005260a46020527f0467ea4a12823e8ff9242f5579e6cecc18baf2a9374240f1f32ab911c60cf5df5460ff16156109f95760408051600160e51b62461bcd02815260206004820152601060248201527f4c6f636b206f6e206465706f7369747300000000000000000000000000000000604482015290519081900360640190fd5b7f0467ea4a12823e8ff9242f5579e6cecc18baf2a9374240f1f32ab911c60cf5df805460ff191660011790556001600160a01b038216600090815260a360209081526040808320848452909152902054610a539084612418565b6001600160a01b03838116600081815260a3602090815260408083208784528252808320958655600290950180546001600160a01b031916909317909255609d548451600160e21b633cd163c502815260048101879052600160cb1b660acd2c286c2e6d0260248201529451919485946101009092049091169263f3458f1492604480840193829003018186803b158015610aed57600080fd5b505afa158015610b01573d6000803e3d6000fd5b505050506040513d6020811015610b1757600080fd5b50516001600160a01b031614610bc457609f5460a05460408051600160e11b634d3038fd028152600481018690526024810192909252600160e91b623b32b9026044830152516001600160a01b0390921691639a6071fa916064808201926020929091908290030181600087803b158015610b9157600080fd5b505af1158015610ba5573d6000803e3d6000fd5b505050506040513d6020811015610bbb57600080fd5b50519050610cec565b609f5460a05460408051600160e11b633ce1098302815260048101929092526002602483015260056044830152516001600160a01b0390921691639a6071fa91859173__stringutils___________________________916379c21306916064808301926020929190829003018186803b158015610c4157600080fd5b505af4158015610c55573d6000803e3d6000fd5b505050506040513d6020811015610c6b57600080fd5b50516040805163ffffffff851660e01b815260048101939093526024830191909152600160f11b6132b90260448301525160648083019260209291908290030181600087803b158015610cbd57600080fd5b505af1158015610cd1573d6000803e3d6000fd5b505050506040513d6020811015610ce757600080fd5b505190505b604080518381526020810186905281516001600160a01b038616927f4360f0decf98093daff370b9cd94b67d703802d9d2a864467a376c2847e125c6928290030190a2610d438383610d3e8488612475565b6124f5565b5050600160ca1b661c9958d95a5c1d02600052505060a46020527f0467ea4a12823e8ff9242f5579e6cecc18baf2a9374240f1f32ab911c60cf5df805460ff19169055565b60368054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610e145780601f10610de957610100808354040283529160200191610e14565b820191906000526020600020905b815481529060010190602001808311610df757829003601f168201915b505050505090505b90565b60a36020908152600092835260408084209091529082529020805460018201546002909201549091906001600160a01b031683565b6000610e68610e616125b1565b84846125b5565b5060015b92915050565b60355490565b609d5460009060ff1615610e8b57600080fd5b610e948461082c565b1515600114610ea257600080fd5b610eab8361082c565b1515600114610eb957600080fd5b81610ec38561147a565b1015610f0357604051600160e51b62461bcd028152600401808060200182810382526021815260200180614cbe6021913960400191505060405180910390fd5b6001600160a01b038316301415610f4157610f2c8285600160d01b6572656465656d02306126a7565b15610f39575060016113c7565b5060006113c7565b609d5460408051600160e01b63f429f19b0281526001600160a01b03868116600483015291516101009093049091169163f429f19b91602480820192602092909190829003018186803b158015610f9757600080fd5b505afa158015610fab573d6000803e3d6000fd5b505050506040513d6020811015610fc157600080fd5b5051600160cb1b660acd2c286c2e6d02141561116757600160c11b673a3930b739b332b90260005260a46020527f1ac85a9df93a32abf6591c4c13ec3449eff3d765e853a5bcded52f9d6e893dbd5460ff16156110685760408051600160e51b62461bcd02815260206004820152601060248201527f4c6f636b206f6e207472616e7366657200000000000000000000000000000000604482015290519081900360640190fd5b600160c11b673a3930b739b332b902600090815260a46020527f1ac85a9df93a32abf6591c4c13ec3449eff3d765e853a5bcded52f9d6e893dbd805460ff1916600117905560a05460408051600160e01b63e5d8fb75028152600481018690526001600160a01b038881166024830152604482019390935290519186169263e5d8fb759260648084019382900301818387803b15801561110757600080fd5b505af115801561111b573d6000803e3d6000fd5b5050600160c11b673a3930b739b332b902600052505060a4602052507f1ac85a9df93a32abf6591c4c13ec3449eff3d765e853a5bcded52f9d6e893dbd805460ff1916905560016113c7565b609d5460408051600160e01b63f429f19b0281526001600160a01b03868116600483015291516101009093049091169163f429f19b91602480820192602092909190829003018186803b1580156111bd57600080fd5b505afa1580156111d1573d6000803e3d6000fd5b505050506040513d60208110156111e757600080fd5b5051600160ca1b66159a58509bdb9902141561129d5760a05460408051600160e31b6306270111028152600481018590526001600160a01b03878116602483015260448201939093523060648201529051918516916331380888916084808201926020929091908290030181600087803b15801561126457600080fd5b505af1158015611278573d6000803e3d6000fd5b505050506040513d602081101561128e57600080fd5b505115610f39575060016113c7565b609d5460408051600160e01b63f429f19b0281526001600160a01b03868116600483015291516101009093049091169163f429f19b91602480820192602092909190829003018186803b1580156112f357600080fd5b505afa158015611307573d6000803e3d6000fd5b505050506040513d602081101561131d57600080fd5b50517f566961426f6e64546f6b656e000000000000000000000000000000000000000014156113ad5760a05460408051600160e41b6305a341b9028152600481018590526001600160a01b0387811660248301526044820193909352306064820152905191851691635a341b90916084808201926020929091908290030181600087803b15801561126457600080fd5b610f2c8285600160c11b673a3930b739b332b902866126a7565b9392505050565b601290565b6000610e686113e06125b1565b8461142785603460006113f16125b1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6140a216565b6125b5565b336114356118cc565b6001600160a01b0316816001600160a01b031614806114665750609d546001600160a01b0382811661010090920416145b61146f57600080fd5b6114776140ff565b50565b6001600160a01b031660009081526033602052604090205490565b61149d6118db565b6114f15760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b606a546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3606a80546001600160a01b0319169055565b6001600160a01b038216600090815260a3602090815260408083208484529091528120600101543390829061159e90611575908890614134565b6001600160a01b038716600090815260a360209081526040808320898452909152902054612475565b6001600160a01b038616600090815260a3602090815260408083208884529091529020549091506115cf9082614216565b6001600160a01b038616600090815260a3602090815260408083208884529091529020556115fd8587614276565b6001600160a01b038516600090815260a36020908152604080832087845290915290206001015461162e9087614216565b6001600160a01b03909516600090815260a36020908152604080832096835295905293909320600101939093559392505050565b3361166b6118cc565b6001600160a01b0316816001600160a01b0316148061169c5750609d546001600160a01b0382811661010090920416145b6116a557600080fd5b611477614375565b600054610100900460ff16806116c657506116c66143ad565b806116d4575060005460ff16155b61171257604051600160e51b62461bcd02815260040180806020018281038252602e815260200180614cdf602e913960400191505060405180910390fd5b600054610100900460ff1615801561173d576000805460ff1961ff0019909116610100171660011790555b61174685611b18565b609d8054610100600160a81b0319163361010002179055609f80546001600160a01b0319166001600160a01b0386161790556040805160208082018a90528251808303909101815290820190915261179d906143b3565b60408051600160e01b63f921e647028152600481018990526000602482018190526005604483015291516118919273__stringutils___________________________9263f921e6479260648083019392829003018186803b15801561180257600080fd5b505af4158015611816573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561183f57600080fd5b81019080805164010000000081111561185757600080fd5b8201602081018481111561186a57600080fd5b815164010000000081118282018710171561188457600080fd5b50509291905050506143c6565b60a0869055609e80546001600160a01b0319166001600160a01b03841617905580156118c3576000805461ff00191690555b50505050505050565b606a546001600160a01b031690565b606a546000906001600160a01b03166118f26125b1565b6001600160a01b031614905090565b60378054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610e145780601f10610de957610100808354040283529160200191610e14565b6000610e6861196f6125b1565b8461142785604051806060016040528060258152602001614d9760259139603460006119996125b1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff6143d916565b6000610e686119dd6125b1565b8484614473565b609d54600090339060ff16156119f957600080fd5b600083815260a26020526040902054611a4c5760a180546001810182557faadc37b8ba5645e62f4546802db221593a94729ccbfc5a97d01365a88f6498780184905554600084815260a260205260409020555b6001600160a01b038416600090815260a36020908152604080832086845290915290206002810180546001600160a01b0319163317905554611a8e9086612418565b6001600160a01b038516600081815260a360209081526040808320888452825291829020939093558051868152928301889052805191927f4360f0decf98093daff370b9cd94b67d703802d9d2a864467a376c2847e125c6929081900390910190a2611b078484610d3e88670de0b6b3a7640000612475565b509392505050565b609d5460ff1690565b600054610100900460ff1680611b315750611b316143ad565b80611b3f575060005460ff16155b611b7d57604051600160e51b62461bcd02815260040180806020018281038252602e815260200180614cdf602e913960400191505060405180910390fd5b600054610100900460ff16158015611ba8576000805460ff1961ff0019909116610100171660011790555b606a80546001600160a01b0319166001600160a01b0384811691909117918290556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38015611c09576000805461ff00191690555b5050565b609d5460408051600160e01b63f429f19b028152336004820152905160009261010090046001600160a01b03169163f429f19b916024808301926020929190829003018186803b158015611c6057600080fd5b505afa158015611c74573d6000803e3d6000fd5b505050506040513d6020811015611c8a57600080fd5b5051600160cb1b660acd2c286c2e6d021480611d2f5750609d5460408051600160e01b63f429f19b02815233600482015290516101009092046001600160a01b03169163f429f19b91602480820192602092909190829003018186803b158015611cf357600080fd5b505afa158015611d07573d6000803e3d6000fd5b505050506040513d6020811015611d1d57600080fd5b5051600160ca1b66159a58509bdb9902145b611d3857600080fd5b6113c783836145d7565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b60a05481565b609d5460408051600160e01b63f429f19b02815233600482015290516101009092046001600160a01b03169163f429f19b91602480820192602092909190829003018186803b158015611dc557600080fd5b505afa158015611dd9573d6000803e3d6000fd5b505050506040513d6020811015611def57600080fd5b5051600160cb1b660acd2c286c2e6d021480611e915750609d60019054906101000a90046001600160a01b03166001600160a01b031663d11322d4826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611e5f57600080fd5b505afa158015611e73573d6000803e3d6000fd5b505050506040513d6020811015611e8957600080fd5b505115156001145b611e9a57600080fd5b609d5460408051600160e21b633444c8b502815260048101849052905160019261010090046001600160a01b03169163d11322d4916024808301926020929190829003018186803b158015611eee57600080fd5b505afa158015611f02573d6000803e3d6000fd5b505050506040513d6020811015611f1857600080fd5b50511515600114156120cd57609d5460408051600160e01b63b946762902815260048101859052905160009261010090046001600160a01b03169163b9467629916024808301926020929190829003018186803b158015611f7857600080fd5b505afa158015611f8c573d6000803e3d6000fd5b505050506040513d6020811015611fa257600080fd5b505160408051600160e01b6323b872dd0281523360048201523060248201526044810188905290519192506001600160a01b038316916323b872dd916064808201926020929091908290030181600087803b15801561200057600080fd5b505af1158015612014573d6000803e3d6000fd5b505050506040513d602081101561202a57600080fd5b5051609d5460408051600160e01b63b94676290281526004810187905290519294506000926120b89261010090046001600160a01b03169163b9467629916024808301926020929190829003018186803b15801561208757600080fd5b505afa15801561209b573d6000803e3d6000fd5b505050506040513d60208110156120b157600080fd5b505161462b565b90506120c486826146ba565b95505050612214565b609d5460408051600160e21b633cd163c502815260048101859052600160cb1b660acd2c286c2e6d026024820152905160009261010090046001600160a01b03169163f3458f14916044808301926020929190829003018186803b15801561213457600080fd5b505afa158015612148573d6000803e3d6000fd5b505050506040513d602081101561215e57600080fd5b505190506001600160a01b038116301461220557806001600160a01b031663f80dcb9a86866040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050602060405180830381600087803b1580156121d257600080fd5b505af11580156121e6573d6000803e3d6000fd5b505050506040513d60208110156121fc57600080fd5b50519150612212565b61220f85856146c6565b91505b505b801561227857600082815260a2602052604090205461226d5760a180546001810182557faadc37b8ba5645e62f4546802db221593a94729ccbfc5a97d01365a88f6498780183905554600083815260a260205260409020555b61227884848461095f565b50505050565b6122866118db565b6122da5760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b611477816146ea565b609d5460408051600160e01b63f429f19b028152336004820152905160009261010090046001600160a01b03169163f429f19b916024808301926020929190829003018186803b15801561233657600080fd5b505afa15801561234a573d6000803e3d6000fd5b505050506040513d602081101561236057600080fd5b5051600160cb1b660acd2c286c2e6d0214806124055750609d5460408051600160e01b63f429f19b02815233600482015290516101009092046001600160a01b03169163f429f19b91602480820192602092909190829003018186803b1580156123c957600080fd5b505afa1580156123dd573d6000803e3d6000fd5b505050506040513d60208110156123f357600080fd5b5051600160ca1b66159a58509bdb9902145b61240e57600080fd5b6113c783836146c6565b6000828201838110156113c75760408051600160e51b62461bcd02815260206004820152600c60248201527f4144445f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600082820283158061248f57508284828161248c57fe5b04145b6124e35760408051600160e51b62461bcd02815260206004820152600c60248201527f4d554c5f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b670de0b6b3a764000090049392505050565b6001600160a01b038316600090815260a3602090815260408083208584529091529020600101546125269082612418565b6001600160a01b038416600090815260a360209081526040808320868452909152902060010155612557838261478e565b826001600160a01b03167fc7d7368f26c07362606b436c035ac173533556512791d04904e9ed5ee30b36d360a0548361258f8761147a565b60408051938452602084019290925282820152519081900360600190a2505050565b3390565b6001600160a01b0383166125fd57604051600160e51b62461bcd028152600401808060200182810382526024815260200180614d736024913960400191505060405180910390fd5b6001600160a01b03821661264557604051600160e51b62461bcd028152600401808060200182810382526022815260200180614c766022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60a1546000908190815b81811080156126c05750600088115b15614096576001600160a01b038716600090815260a36020526040812060a18054919291849081106126ee57fe5b906000526020600020015481526020019081526020016000206001015460001415801561276157506001600160a01b038716600090815260a36020526040812060a180549192918490811061273f57fe5b9060005260206000200154815260200190815260200160002060000154600014155b1561408e5760006128106127c58a60a360008c6001600160a01b03166001600160a01b03168152602001908152602001600020600060a187815481106127a357fe5b9060005260206000200154815260200190815260200160002060010154614134565b6001600160a01b038a16600090815260a36020526040812060a18054919291879081106127ee57fe5b9060005260206000200154815260200190815260200160002060000154612475565b90508860a360008a6001600160a01b03166001600160a01b03168152602001908152602001600020600060a1858154811061284757fe5b9060005260206000200154815260200190815260200160002060010154101580156128725750600081115b80156128c357506001600160a01b038816600090815260a36020526040812060a1805484939190869081106128a357fe5b906000526020600020015481526020019081526020016000206000015410155b156133ac57600160d01b6572656465656d0260005260a4602052600080516020614d0d8339815191525460ff161561293d5760408051600160e51b62461bcd0281526020600482015260126024820152600160711b712637b1b59037b7103932b232b6b83a34b7b702604482015290519081900360640190fd5b600080516020614d0d833981519152805460ff191660011790556001600160a01b038816600090815260a36020526040812060a180546129a69391908690811061298357fe5b906000526020600020015481526020019081526020016000206000015482614216565b6001600160a01b038916600090815260a36020526040812060a18054919291869081106129cf57fe5b9060005260206000200154815260200190815260200160002060000181905550612a4960a360008a6001600160a01b03166001600160a01b03168152602001908152602001600020600060a18581548110612a2657fe5b90600052602060002001548152602001908152602001600020600101548a614216565b6001600160a01b038916600090815260a36020526040812060a1805491929186908110612a7257fe5b906000526020600020015481526020019081526020016000206001018190555086600160d01b6572656465656d02141561309157612ab0888a614276565b612ae3888a8360a18681548110612ac357fe5b9060005260206000200154600160ba1b681dda5d1a191c985ddb02614883565b809250819a50505060a18281548110612af857fe5b9060005260206000200154600160d91b6432ba3432b9021415612b51576040516001600160a01b0389169082156108fc029083906000818181858888f19350505050158015612b4b573d6000803e3d6000fd5b50613019565b609d60019054906101000a90046001600160a01b03166001600160a01b031663d11322d460a18481548110612b8257fe5b90600052602060002001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612bc157600080fd5b505afa158015612bd5573d6000803e3d6000fd5b505050506040513d6020811015612beb57600080fd5b5051151560011415612d1757609d5460a1805460009261010090046001600160a01b03169163b94676299186908110612c2057fe5b90600052602060002001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612c5f57600080fd5b505afa158015612c73573d6000803e3d6000fd5b505050506040513d6020811015612c8957600080fd5b505160408051600160e01b63a9059cbb0281526001600160a01b038c811660048301526024820186905291519293509083169163a9059cbb916044808201926020929091908290030181600087803b158015612ce457600080fd5b505af1158015612cf8573d6000803e3d6000fd5b505050506040513d6020811015612d0e57600080fd5b50613019915050565b609d5460a1805460009261010090046001600160a01b03169163f3458f149186908110612d4057fe5b90600052602060002001546040518263ffffffff1660e01b81526004018082815260200180600160cb1b660acd2c286c2e6d0281525060200191505060206040518083038186803b158015612d9457600080fd5b505afa158015612da8573d6000803e3d6000fd5b505050506040513d6020811015612dbe57600080fd5b50516001600160a01b031614612efa57609d5460a1805460009261010090046001600160a01b03169163f3458f149186908110612df757fe5b90600052602060002001546040518263ffffffff1660e01b81526004018082815260200180600160cb1b660acd2c286c2e6d0281525060200191505060206040518083038186803b158015612e4b57600080fd5b505afa158015612e5f573d6000803e3d6000fd5b505050506040513d6020811015612e7557600080fd5b505190506001600160a01b038116301415612e9a57612e94828a6145d7565b50612b4b565b806001600160a01b031663da49588b838b6040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050602060405180830381600087803b158015612ce457600080fd5b60a2600060a18481548110612f0b57fe5b906000526020600020015481526020019081526020016000205460001461301957609f546001600160a01b03898116600090815260a36020526040812060a18054939094169363b1fa13509391929187908110612f6457fe5b9060005260206000200154815260200190815260200160002060020160009054906101000a90046001600160a01b03168a60a18681548110612fa257fe5b60009182526020822001546040805163ffffffff871660e01b81526001600160a01b03958616600482015293909416602484015260448301526064820186905291516084808301939282900301818387803b15801561300057600080fd5b505af1158015613014573d6000803e3d6000fd5b505050505b876001600160a01b03167ff87471333b4bf64674cd46ef8018795ebfc5778cb718960a80d805ae2c6c023260a1848154811061305157fe5b9060005260206000200154838c6130678d61147a565b604080519485526020850193909352838301919091526060830152519081900360800190a2613373565b86600160c11b673a3930b739b332b9021415613373576130b1888a614276565b6130e3888a8360a186815481106130c457fe5b9060005260206000200154600160c11b673a3930b739b332b902614883565b90995090506130f2868a61478e565b6001600160a01b038616600090815260a36020526040812060a180546131419391908690811061311e57fe5b906000526020600020015481526020019081526020016000206000015482612418565b6001600160a01b038716600090815260a36020526040812060a180549192918690811061316a57fe5b90600052602060002001548152602001908152602001600020600001819055506131e460a36000886001600160a01b03166001600160a01b03168152602001908152602001600020600060a185815481106131c157fe5b90600052602060002001548152602001908152602001600020600101548a612418565b6001600160a01b038716600090815260a36020526040812060a180549192918690811061320d57fe5b906000526020600020015481526020019081526020016000206001018190555060a36000896001600160a01b03166001600160a01b03168152602001908152602001600020600060a1848154811061326157fe5b9060005260206000200154815260200190815260200160002060020160009054906101000a90046001600160a01b031660a36000886001600160a01b03166001600160a01b03168152602001908152602001600020600060a185815481106132c557fe5b9060005260206000200154815260200190815260200160002060020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550856001600160a01b0316886001600160a01b03167fd172b07a50f3a175b2e227bc1ac96b00c8cd4547c3471f8190122b7f7494cfed60a1858154811061334757fe5b60009182526020918290200154604080519182529181018e905280820186905290519081900360600190a35b600160d01b6572656465656d02600090815260a4602052600080516020614d0d833981519152805460ff1916905598506001935061408c565b6001600160a01b038816600090815260a36020526040812060a18054839190869081106133d557fe5b90600052602060002001548152602001908152602001600020600101541180156133ff5750600081115b1561408c57600160d01b6572656465656d0260005260a4602052600080516020614d0d8339815191525460ff16156134795760408051600160e51b62461bcd0281526020600482015260126024820152600160711b712637b1b59037b7103932b232b6b83a34b7b702604482015290519081900360640190fd5b600160d01b6572656465656d02600081905260a4602052600080516020614d0d833981519152805460ff191660011790558990881415613bbe5761350d8960a360008c6001600160a01b03166001600160a01b03168152602001908152602001600020600060a187815481106134eb57fe5b9060005260206000200154815260200190815260200160002060010154614276565b6135c08960a360008c6001600160a01b03166001600160a01b03168152602001908152602001600020600060a1878154811061354557fe5b906000526020600020015481526020019081526020016000206001015460a360008d6001600160a01b03166001600160a01b03168152602001908152602001600020600060a1888154811061359657fe5b906000526020600020015481526020019081526020016000206000015460a18781548110612ac357fe5b809350819b50505060a183815481106135d557fe5b9060005260206000200154600160d91b6432ba3432b902141561362e576040516001600160a01b038a169083156108fc029084906000818181858888f19350505050158015613628573d6000803e3d6000fd5b50613af6565b609d60019054906101000a90046001600160a01b03166001600160a01b031663d11322d460a1858154811061365f57fe5b90600052602060002001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561369e57600080fd5b505afa1580156136b2573d6000803e3d6000fd5b505050506040513d60208110156136c857600080fd5b50511515600114156137f457609d5460a1805460009261010090046001600160a01b03169163b946762991879081106136fd57fe5b90600052602060002001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561373c57600080fd5b505afa158015613750573d6000803e3d6000fd5b505050506040513d602081101561376657600080fd5b505160408051600160e01b63a9059cbb0281526001600160a01b038d811660048301526024820187905291519293509083169163a9059cbb916044808201926020929091908290030181600087803b1580156137c157600080fd5b505af11580156137d5573d6000803e3d6000fd5b505050506040513d60208110156137eb57600080fd5b50613af6915050565b609d5460a1805460009261010090046001600160a01b03169163f3458f14918790811061381d57fe5b90600052602060002001546040518263ffffffff1660e01b81526004018082815260200180600160cb1b660acd2c286c2e6d0281525060200191505060206040518083038186803b15801561387157600080fd5b505afa158015613885573d6000803e3d6000fd5b505050506040513d602081101561389b57600080fd5b50516001600160a01b0316146139d757609d5460a1805460009261010090046001600160a01b03169163f3458f1491879081106138d457fe5b90600052602060002001546040518263ffffffff1660e01b81526004018082815260200180600160cb1b660acd2c286c2e6d0281525060200191505060206040518083038186803b15801561392857600080fd5b505afa15801561393c573d6000803e3d6000fd5b505050506040513d602081101561395257600080fd5b505190506001600160a01b03811630141561397757613971838b6145d7565b50613628565b806001600160a01b031663da49588b848c6040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050602060405180830381600087803b1580156137c157600080fd5b60a2600060a185815481106139e857fe5b9060005260206000200154815260200190815260200160002054600014613af657609f546001600160a01b038a8116600090815260a36020526040812060a18054939094169363b1fa13509391929188908110613a4157fe5b9060005260206000200154815260200190815260200160002060020160009054906101000a90046001600160a01b03168b60a18781548110613a7f57fe5b60009182526020822001546040805163ffffffff871660e01b81526001600160a01b03958616600482015293909416602484015260448301526064820187905291516084808301939282900301818387803b158015613add57600080fd5b505af1158015613af1573d6000803e3d6000fd5b505050505b886001600160a01b03167ff87471333b4bf64674cd46ef8018795ebfc5778cb718960a80d805ae2c6c023260a18581548110613b2e57fe5b90600052602060002001548460a360008e6001600160a01b03166001600160a01b03168152602001908152602001600020600060a18981548110613b6e57fe5b9060005260206000200154815260200190815260200160002060010154613b948e61147a565b604080519485526020850193909352838301919091526060830152519081900360800190a2613f4f565b87600160c11b673a3930b739b332b9021415613f4f57613c0c8960a360008c6001600160a01b03166001600160a01b03168152602001908152602001600020600060a187815481106134eb57fe5b613cbf8960a360008c6001600160a01b03166001600160a01b03168152602001908152602001600020600060a18781548110613c4457fe5b906000526020600020015481526020019081526020016000206001015460a360008d6001600160a01b03166001600160a01b03168152602001908152602001600020600060a18881548110613c9557fe5b906000526020600020015481526020019081526020016000206000015460a187815481106130c457fe5b909a509150613cce878b61478e565b6001600160a01b038716600090815260a36020526040812060a18054613d1d93919087908110613cfa57fe5b906000526020600020015481526020019081526020016000206000015483612418565b6001600160a01b038816600090815260a36020526040812060a1805491929187908110613d4657fe5b9060005260206000200154815260200190815260200160002060000181905550613dc060a36000896001600160a01b03166001600160a01b03168152602001908152602001600020600060a18681548110613d9d57fe5b90600052602060002001548152602001908152602001600020600101548b612418565b6001600160a01b038816600090815260a36020526040812060a1805491929187908110613de957fe5b906000526020600020015481526020019081526020016000206001018190555060a360008a6001600160a01b03166001600160a01b03168152602001908152602001600020600060a18581548110613e3d57fe5b9060005260206000200154815260200190815260200160002060020160009054906101000a90046001600160a01b031660a36000896001600160a01b03166001600160a01b03168152602001908152602001600020600060a18681548110613ea157fe5b9060005260206000200154815260200190815260200160002060020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550866001600160a01b0316896001600160a01b03167fd172b07a50f3a175b2e227bc1ac96b00c8cd4547c3471f8190122b7f7494cfed60a18681548110613f2357fe5b60009182526020918290200154604080519182529181018f905280820187905290519081900360600190a35b613fa98160a360008c6001600160a01b03166001600160a01b03168152602001908152602001600020600060a18781548110613f8757fe5b9060005260206000200154815260200190815260200160002060010154614216565b9950600060a360008b6001600160a01b03166001600160a01b03168152602001908152602001600020600060a18681548110613fe157fe5b9060005260206000200154815260200190815260200160002060000181905550600060a360008b6001600160a01b03166001600160a01b03168152602001908152602001600020600060a1868154811061403757fe5b600091825260208083209091015483528281019390935260409091018120600190810193909355600160d01b6572656465656d02905260a49052600080516020614d0d833981519152805460ff191690559450505b505b6001016126b1565b50909695505050505050565b6000828201838110156113c75760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b609d805460ff191690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a1565b60008161418b5760408051600160e51b62461bcd02815260206004820152600d60248201527f5a45524f5f4449564953494f4e00000000000000000000000000000000000000604482015290519081900360640190fd5b8261419857506000610e6c565b670de0b6b3a7640000838102908482816141ae57fe5b04146142045760408051600160e51b62461bcd02815260206004820152600c60248201527f4449565f494e5445524e414c0000000000000000000000000000000000000000604482015290519081900360640190fd5b82818161420d57fe5b04915050610e6c565b6000828211156142705760408051600160e51b62461bcd02815260206004820152600c60248201527f5355425f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b6001600160a01b0382166142be57604051600160e51b62461bcd028152600401808060200182810382526021815260200180614d2d6021913960400191505060405180910390fd5b61430181604051806060016040528060228152602001614c2e602291396001600160a01b038516600090815260336020526040902054919063ffffffff6143d916565b6001600160a01b03831660009081526033602052604090205560355461432d908263ffffffff614b3016565b6035556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b609d805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b303b1590565b8051611c09906036906020840190614b72565b8051611c09906037906020840190614b72565b6000818484111561446b57604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614430578181015183820152602001614418565b50505050905090810190601f16801561445d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0383166144bb57604051600160e51b62461bcd028152600401808060200182810382526025815260200180614d4e6025913960400191505060405180910390fd5b6001600160a01b03821661450357604051600160e51b62461bcd028152600401808060200182810382526023815260200180614c0b6023913960400191505060405180910390fd5b61454681604051806060016040528060268152602001614c98602691396001600160a01b038616600090815260336020526040902054919063ffffffff6143d916565b6001600160a01b03808516600090815260336020526040808220939093559084168152205461457b908263ffffffff6140a216565b6001600160a01b0380841660008181526033602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000826145e33061147a565b106145fb576145f3308385614473565b506000610e6c565b600061460f8461460a3061147a565b614216565b9050614624308461461f3061147a565b614473565b9050610e6c565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561466757600080fd5b505afa15801561467b573d6000803e3d6000fd5b505050506040513d602081101561469157600080fd5b505160ff16905060006146a5601283614216565b600a0a670de0b6b3a764000002949350505050565b60006113c78383612475565b6000826146d28361147a565b106145f3576146e2823085614473565b506001610e6c565b6001600160a01b03811661473257604051600160e51b62461bcd028152600401808060200182810382526026815260200180614c506026913960400191505060405180910390fd5b606a546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3606a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382166147ec5760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6035546147ff908263ffffffff6140a216565b6035556001600160a01b03821660009081526033602052604090205461482b908263ffffffff6140a216565b6001600160a01b03831660008181526033602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600080600083600160c11b673a3930b739b332b902141561492f57609e5460408051600160e01b63e5f3d3a5028152600160b01b6972656d697474616e636502600482015290516001600160a01b039092169163e5f3d3a591602480820192602092909190829003018186803b1580156148fc57600080fd5b505afa158015614910573d6000803e3d6000fd5b505050506040513d602081101561492657600080fd5b505190506149d2565b83600160ba1b681dda5d1a191c985ddb0214156149d257609e5460408051600160e01b63e5f3d3a5028152600160ba1b681dda5d1a191c985ddb02600482015290516001600160a01b039092169163e5f3d3a591602480820192602092909190829003018186803b1580156149a357600080fd5b505afa1580156149b7573d6000803e3d6000fd5b505050506040513d60208110156149cd57600080fd5b505190505b8015614b2257609e5460408051600160e01b63c561d4b702815290516000926001600160a01b03169163c561d4b7916004808301926020929190829003018186803b158015614a2057600080fd5b505afa158015614a34573d6000803e3d6000fd5b505050506040513d6020811015614a4a57600080fd5b505190506001600160a01b03811615614b2057614a6c898261461f858c612475565b6001600160a01b038116600090815260a360209081526040808320898452909152902060010154614aa19061460a848b612475565b6001600160a01b038216600090815260a3602090815260408083208a84529091529020600181019190915554614adb9061460a848a612475565b6001600160a01b038216600090815260a3602090815260408083208a8452909152902055614b0d8861460a8482612475565b9750614b1d8761460a848a612475565b96505b505b509496939550929350505050565b60006113c783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506143d9565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614bb357805160ff1916838001178555614be0565b82800160010185558215614be0579182015b82811115614be0578251825591602001919060010190614bc5565b50614bec929150614bf0565b5090565b610e1c91905b80821115614bec5760008155600101614bf656fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e73756666696369656e742062616c616e636520666f72207472616e73666572436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a656494d05dfec762f4feefa20f3d96074a9e9096c817198523a2600cbbeee33cc1f345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa165627a7a72305820b618b1cf1f336d821acff018f29e9c8322e24c00ab2e500ac130bd4c564170250029",
    "sourceMap": "729:23304:15:-;;;;;;;;;",
    "deployedSourceMap": "729:23304:15:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2880:9;2872:22;;;;;;2945:8;:18;2937:27;;;;;;3022:6;;;;:15;3014:24;;;;;;3085:20;3094:10;3085:8;:20::i;:::-;:26;;3107:4;3085:26;3077:35;;;;;;-1:-1:-1;;;;;3181:22:15;;:13;:22;;;;3178:137;;3222:10;27::-1;;39:1;23:18;;45:23;;-1:-1;;;;;3222:24:15;;;;;;;3286:17;;-1:-1:-1;3261:22:15;;;;:13;3222:24;3261:22;;:42;3178:137;3358:43;3370:9;3381:10;-1:-1:-1;;;;;3358:11:15;:43::i;:::-;729:23304;1999:83:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1999:83:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1999:83:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1428:64:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1428:64:15;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1428:64:15;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1428:64:15;;;;;;;;;;;;;;4238:152:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4238:152:32;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4238:152:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3259:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3259:91:32;;;:::i;:::-;;;;;;;;;;;;;;;;18954:2361:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18954:2361:15;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18954:2361:15;;;;;;;;;;;;;;;;;:::i;3118:76:32:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3118:76:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5575:210;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5575:210:32;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5575:210:32;;;;;;;;:::i;22874:84:15:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22874:84:15;;;:::i;3413:110:32:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3413:110:32;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3413:110:32;-1:-1:-1;;;;;3413:110:32;;:::i;1746:137:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1746:137:2;;;:::i;17321:565:15:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17321:565:15;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17321:565:15;;;-1:-1:-1;;;;;17321:565:15;;;;;;;;;;:::i;22782:80::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22782:80:15;;;:::i;2311:428::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2311:428:15;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;2311:428:15;;;;;;;;-1:-1:-1;;;;;2311:428:15;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;959:77:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;959:77:2;;;:::i;:::-;;;;-1:-1:-1;;;;;959:77:2;;;;;;;;;;;;;;1310:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1310:92:2;;;:::i;2288:87:32:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2288:87:32;;;:::i;6288:261::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6288:261:32;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6288:261:32;;;;;;;;:::i;3736:158::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3736:158:32;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3736:158:32;;;;;;;;:::i;6260:769:15:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6260:769:15;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6260:769:15;;;-1:-1:-1;;;;;6260:769:15;;;;;;;;;;:::i;762:79:33:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;762:79:33;;;:::i;741:142:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;741:142:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;741:142:2;-1:-1:-1;;;;;741:142:2;;:::i;17942:262:15:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17942:262:15;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17942:262:15;;;;;;-1:-1:-1;;;;;17942:262:15;;:::i;3957:134:32:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3957:134:32;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3957:134:32;;;;;;;;;;:::i;1096:29:15:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1096:29:15;;;:::i;3464:1422::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3464:1422:15;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3464:1422:15;;;-1:-1:-1;;;;;3464:1422:15;;;;;;;;;;:::i;2032:107:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2032:107:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2032:107:2;-1:-1:-1;;;;;2032:107:2;;:::i;7676:244:15:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7676:244:15;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7676:244:15;;;;;;-1:-1:-1;;;;;7676:244:15;;:::i;22472:302::-;22528:4;22544:14;22561:8;;;;;;;;;-1:-1:-1;;;;;22561:8:15;-1:-1:-1;;;;;22561:18:15;;:20;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22561:20:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22561:20:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22561:20:15;;-1:-1:-1;;;;;;22595:20:15;;22592:49;;22637:4;22630:11;;;;;22592:49;22670:6;-1:-1:-1;;;;;22655:35:15;;22691:7;22655:44;;;;;;;;;;;;;-1:-1:-1;;;;;22655:44:15;-1:-1:-1;;;;;22655:44:15;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22655:44:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22655:44:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22655:44:15;22652:114;;;22721:4;22714:11;;;;;22652:114;22761:5;22754:12;;;22472:302;;;;:::o;5028:1127::-;5175:11;5167:20;;;;;;-1:-1:-1;;;;;5207:16:15;;:5;:16;;;;;;5206:17;5198:46;;;;;-1:-1:-1;;;;;5198:46:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;5255:16;:23;;-1:-1:-1;;5255:23:15;5274:4;5255:23;;;-1:-1:-1;;;;;5341:16:15;;5255;5341;;;:9;5255:16;5341;;;5255;5341;;;:26;;;;;;;;:40;5332:58;;5383:6;5332:8;:58::i;:::-;-1:-1:-1;;;;;5289:16:15;;;;;;;:9;:16;;;;;;;;:26;;;;;;;;:101;;;5401:36;;;;:44;;-1:-1:-1;;;;;;5401:44:15;;;;;;;5546:8;;:48;;-1:-1:-1;;;;;5546:48:15;;;;;;;;-1:-1:-1;;;;;5546:48:15;;;;;;5289:16;;;;5401:44;5546:8;;;;;;;:27;;:48;;;;;;;;;;:8;:48;;;5:2:-1;;;;30:1;27;20:12;5:2;5546:48:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5546:48:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5546:48:15;-1:-1:-1;;;;;5546:62:15;;5543:444;;5692:7;;5718:14;;5692:48;;;-1:-1:-1;;;;;5692:48:15;;;;;;;;;;;;;;;-1:-1:-1;;;;;5692:48:15;;;;;-1:-1:-1;;;;;5692:7:15;;;;:15;;:48;;;;;;;;;;;;;;;:7;;:48;;;5:2:-1;;;;30:1;27;20:12;5:2;5692:48:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5692:48:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5692:48:15;;-1:-1:-1;5543:444:15;;;5918:7;;5944:14;;:36;;;-1:-1:-1;;;;;5944:36:15;;;;;;;;;5976:1;5944:36;;;;5978:1;5944:36;;;;;-1:-1:-1;;;;;5918:7:15;;;;:15;;5934:8;;5944:31;;;;:36;;;;;;;;;;;;;;:31;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;5944:36:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5944:36:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5944:36:15;5918:69;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5918:69:15;;;;;;;;;;5944:36;;5918:69;;;;;;;-1:-1:-1;5918:69:15;;;;5:2:-1;;;;30:1;27;20:12;5:2;5918:69:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5918:69:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5918:69:15;;-1:-1:-1;5543:444:15;6003:37;;;;;;;;;;;;;;-1:-1:-1;;;;;6003:37:15;;;;;;;;;;;6051:56;6057:5;6064:8;6074:32;6093:4;6099:6;6074:18;:32::i;:::-;6051:5;:56::i;:::-;-1:-1:-1;;;;;;;6137:5:15;6118:16;-1:-1:-1;;6118:5:15;:16;;;:24;;-1:-1:-1;;6118:24:15;;;5028:1127::o;1999:83:32:-;2069:5;2062:12;;;;;;;;-1:-1:-1;;2062:12:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2036:13;;2062:12;;2069:5;;2062:12;;2069:5;2062:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1999:83;;:::o;1428:64:15:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1428:64:15;;:::o;4238:152:32:-;4304:4;4321:39;4330:12;:10;:12::i;:::-;4344:7;4353:6;4321:8;:39::i;:::-;-1:-1:-1;4378:4:32;4238:152;;;;;:::o;3259:91::-;3330:12;;3259:91;:::o;18954:2361:15:-;19105:6;;19042:4;;19105:6;;:15;19097:24;;;;;;19168:16;19177:6;19168:8;:16::i;:::-;:22;;19186:4;19168:22;19160:31;;;;;;19210:18;19219:8;19210;:18::i;:::-;:24;;19230:4;19210:24;19202:33;;;;;;19367:6;19346:17;19356:6;19346:9;:17::i;:::-;:27;;19338:73;;;;-1:-1:-1;;;;;19338:73:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19496:25:15;;19516:4;19496:25;19493:1814;;;19615:47;19622:6;19630;-1:-1:-1;;;;;19656:4:15;19615:6;:47::i;:::-;19612:129;;;-1:-1:-1;19688:4:15;19681:11;;19612:129;-1:-1:-1;19736:5:15;19729:12;;19493:1814;19840:8;;:26;;;-1:-1:-1;;;;;19840:26:15;;-1:-1:-1;;;;;19840:26:15;;;;;;;;;:8;;;;;;;;:16;;:26;;;;;;;;;;;;;;;:8;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;19840:26:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19840:26:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19840:26:15;-1:-1:-1;;;;;19840:37:15;19837:1470;;;-1:-1:-1;;;;;19903:17:15;;:5;:17;;;;;;19902:18;19894:47;;;;;-1:-1:-1;;;;;19894:47:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19956:17:15;;;;:5;:17;;;:24;;-1:-1:-1;;19956:24:15;19976:4;19956:24;;;20163:14;;19956:17;20101:77;;-1:-1:-1;;;;;20101:77:15;;;;;;;;-1:-1:-1;;;;;20101:77:15;;;;;;;;;;;;;;;;:45;;;;;;:77;;;;;;;;;;19956:17;20101:45;:77;;;5:2:-1;;;;30:1;27;20:12;5:2;20101:77:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;;20213:5:15;20193:17;-1:-1:-1;;20193:5:15;:17;;-1:-1:-1;20193:17:15;:25;;-1:-1:-1;;20193:25:15;;;;20234:11;;19837:1470;20382:8;;:26;;;-1:-1:-1;;;;;20382:26:15;;-1:-1:-1;;;;;20382:26:15;;;;;;;;;:8;;;;;;;;:16;;:26;;;;;;;;;;;;;;;:8;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;20382:26:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20382:26:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20382:26:15;-1:-1:-1;;;;;20382:37:15;20379:928;;;20503:14;;20438:95;;;-1:-1:-1;;;;;20438:95:15;;;;;;;;-1:-1:-1;;;;;20438:95:15;;;;;;;;;;;;;;20527:4;20438:95;;;;;;:48;;;;;;:95;;;;;;;;;;;;;;;-1:-1:-1;20438:48:15;:95;;;5:2:-1;;;;30:1;27;20:12;5:2;20438:95:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20438:95:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20438:95:15;20435:177;;;-1:-1:-1;20559:4:15;20552:11;;20379:928;20730:8;;:26;;;-1:-1:-1;;;;;20730:26:15;;-1:-1:-1;;;;;20730:26:15;;;;;;;;;:8;;;;;;;;:16;;:26;;;;;;;;;;;;;;;:8;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;20730:26:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20730:26:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20730:26:15;:42;;20727:580;;;20863:14;;20791:102;;;-1:-1:-1;;;;;20791:102:15;;;;;;;;-1:-1:-1;;;;;20791:102:15;;;;;;;;;;;;;;20887:4;20791:102;;;;;;:55;;;;;;:102;;;;;;;;;;;;;;;-1:-1:-1;20791:55:15;:102;;;5:2:-1;;;;30:1;27;20:12;20727:580:15;21172:44;21179:6;21187;-1:-1:-1;;;;;21207:8:15;21172:6;:44::i;21169:126::-;18954:2361;;;;;:::o;3118:76:32:-;3184:2;3118:76;:::o;5575:210::-;5655:4;5672:83;5681:12;:10;:12::i;:::-;5695:7;5704:50;5743:10;5704:11;:25;5716:12;:10;:12::i;:::-;-1:-1:-1;;;;;5704:25:32;;;;;;;;;;;;;;;;;-1:-1:-1;5704:25:32;;;:34;;;;;;;;;;;:50;:38;:50;:::i;:::-;5672:8;:83::i;22874:84:15:-;22910:10;23037:7;:5;:7::i;:::-;-1:-1:-1;;;;;23027:17:15;:6;-1:-1:-1;;;;;23027:17:15;;:48;;;-1:-1:-1;23066:8:15;;-1:-1:-1;;;;;23048:27:15;;;23066:8;;;;;23048:27;23027:48;23019:57;;;;;;22940:10;:8;:10::i;:::-;22874:84;:::o;3413:110:32:-;-1:-1:-1;;;;;3497:18:32;3470:7;3497:18;;;:9;:18;;;;;;;3413:110::o;1746:137:2:-;1163:9;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1828:6;;1807:40;;1844:1;;-1:-1:-1;;;;;1828:6:2;;1807:40;;1844:1;;1807:40;1857:6;:19;;-1:-1:-1;;;;;;1857:19:2;;;1746:137::o;17321:565:15:-;-1:-1:-1;;;;;17515:16:15;;17437:4;17515:16;;;:9;:16;;;;;;;;:26;;;;;;;;:39;;;17408:10;;17437:4;;17469:129;;17488:67;;17507:6;;17488:18;:67::i;:::-;-1:-1:-1;;;;;17557:16:15;;;;;;:9;:16;;;;;;;;:26;;;;;;;;:40;17469:18;:129::i;:::-;-1:-1:-1;;;;;17661:16:15;;;;;;:9;:16;;;;;;;;:26;;;;;;;;:40;17453:145;;-1:-1:-1;17652:57:15;;17453:145;17652:8;:57::i;:::-;-1:-1:-1;;;;;17609:16:15;;;;;;:9;:16;;;;;;;;:26;;;;;;;;:100;17748:20;17619:5;17761:6;17748:5;:20::i;:::-;-1:-1:-1;;;;;17830:16:15;;;;;;:9;:16;;;;;;;;:26;;;;;;;;:39;;;17821:57;;17871:6;17821:8;:57::i;:::-;-1:-1:-1;;;;;17779:16:15;;;;;;;:9;:16;;;;;;;;:26;;;;;;;;;;:39;;:99;;;;17321:565;;-1:-1:-1;;;17321:565:15:o;22782:80::-;22816:10;23037:7;:5;:7::i;:::-;-1:-1:-1;;;;;23027:17:15;:6;-1:-1:-1;;;;;23027:17:15;;:48;;;-1:-1:-1;23066:8:15;;-1:-1:-1;;;;;23048:27:15;;;23066:8;;;;;23048:27;23027:48;23019:57;;;;;;22846:8;:6;:8::i;2311:428::-;1024:12:4;;;;;;;;:31;;;1040:15;:13;:15::i;:::-;1024:47;;;-1:-1:-1;1060:11:4;;;;1059:12;1024:47;1016:106;;;;-1:-1:-1;;;;;1016:106:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1129:19;1152:12;;;;;;1151:13;1170:80;;;;1198:12;:19;;-1:-1:-1;;;;1198:19:4;;;;;1225:18;1213:4;1225:18;;;1170:80;2451:25:15;2470:5;2451:18;:25::i;:::-;2495:8;:33;;-1:-1:-1;;;;;;2495:33:15;2517:10;2495:33;;;;;2539:7;:27;;-1:-1:-1;;;;;;2539:27:15;-1:-1:-1;;;;;2539:27:15;;;;;2592:22;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2592:22:15;;;;;;2577:39;;:7;:39::i;:::-;2637:19;;;-1:-1:-1;;;;;2637:19:15;;;;;;;;2652:1;2637:19;;;;;;2654:1;2637:19;;;;;;2627:30;;2637:14;;;;:19;;;;;2652:1;2637:19;;;;;:14;:19;;;5:2:-1;;;;30:1;27;20:12;5:2;2637:19:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2637:19:15;;;;;;39:16:-1;36:1;17:17;2:54;101:4;2637:19:15;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;2637:19:15;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;2637:19:15;;;;;;2627:9;:30::i;:::-;2668:14;:25;;;2704:6;:27;;-1:-1:-1;;;;;;2704:27:15;-1:-1:-1;;;;;2704:27:15;;;;;1264:55:4;;;;1307:5;1292:20;;-1:-1:-1;;1292:20:4;;;1264:55;2311:428:15;;;;;;;:::o;959:77:2:-;1023:6;;-1:-1:-1;;;;;1023:6:2;959:77;:::o;1310:92::-;1389:6;;1350:4;;-1:-1:-1;;;;;1389:6:2;1373:12;:10;:12::i;:::-;-1:-1:-1;;;;;1373:22:2;;1366:29;;1310:92;:::o;2288:87:32:-;2360:7;2353:14;;;;;;;;-1:-1:-1;;2353:14:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2327:13;;2353:14;;2360:7;;2353:14;;2360:7;2353:14;;;;;;;;;;;;;;;;;;;;;;;;6288:261;6373:4;6390:129;6399:12;:10;:12::i;:::-;6413:7;6422:96;6461:15;6422:96;;;;;;;;;;;;;;;;;:11;:25;6434:12;:10;:12::i;:::-;-1:-1:-1;;;;;6422:25:32;;;;;;;;;;;;;;;;;-1:-1:-1;6422:25:32;;;:34;;;;;;;;;;;:96;;:38;:96;:::i;3736:158::-;3805:4;3822:42;3832:12;:10;:12::i;:::-;3846:9;3857:6;3822:9;:42::i;6260:769:15:-;6430:6;;6367:4;;6338:10;;6430:6;;:15;6422:24;;;;;;6507:23;;;;:13;:23;;;;;;6504:140;;6549:10;27::-1;;39:1;23:18;;45:23;;6549:25:15;;;;;6615:17;-1:-1:-1;6589:23:15;;;:13;6549:25;6589:23;;;;:43;6504:140;-1:-1:-1;;;;;6654:16:15;;;;;;:9;:16;;;;;;;;:26;;;;;;;;:36;;;:49;;-1:-1:-1;;;;;;6654:49:15;6693:10;6654:49;;;6766:40;6757:58;;6808:6;6757:8;:58::i;:::-;-1:-1:-1;;;;;6714:16:15;;;;;;:9;:16;;;;;;;;:26;;;;;;;;;:101;;;;6831:37;;;;;;;;;;;;;6714:16;;6831:37;;;;;;;;;;;6965:56;6971:5;6978:8;6988:32;7007:6;7015:4;6988:18;:32::i;6965:56::-;6260:769;;;;;;:::o;762:79:33:-;827:6;;;;762:79;:::o;741:142:2:-;1024:12:4;;;;;;;;:31;;;1040:15;:13;:15::i;:::-;1024:47;;;-1:-1:-1;1060:11:4;;;;1059:12;1024:47;1016:106;;;;-1:-1:-1;;;;;1016:106:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1129:19;1152:12;;;;;;1151:13;1170:80;;;;1198:12;:19;;-1:-1:-1;;;;1198:19:4;;;;;1225:18;1213:4;1225:18;;;1170:80;806:6:2;:15;;-1:-1:-1;;;;;;806:15:2;-1:-1:-1;;;;;806:15:2;;;;;;;;;;;836:40;;869:6;;;-1:-1:-1;;836:40:2;;-1:-1:-1;;836:40:2;1268:14:4;1264:55;;;1307:5;1292:20;;-1:-1:-1;;1292:20:4;;;1264:55;741:142:2;;:::o;17942:262:15:-;18055:8;;:28;;;-1:-1:-1;;;;;18055:28:15;;18072:10;18055:28;;;;;;-1:-1:-1;;18055:8:15;;;-1:-1:-1;;;;;18055:8:15;;:16;;:28;;;;;;;;;;;;;;:8;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;18055:28:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18055:28:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18055:28:15;-1:-1:-1;;;;;18055:41:15;;:86;;-1:-1:-1;18100:8:15;;:28;;;-1:-1:-1;;;;;18100:28:15;;18117:10;18100:28;;;;;;:8;;;;-1:-1:-1;;;;;18100:8:15;;:16;;:28;;;;;;;;;;;;;;;:8;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;18100:28:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18100:28:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18100:28:15;-1:-1:-1;;;;;18100:41:15;18055:86;18047:95;;;;;;18160:35;18178:6;18186:8;18160:17;:35::i;3957:134:32:-;-1:-1:-1;;;;;4056:18:32;;;4029:7;4056:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3957:134::o;1096:29:15:-;;;;:::o;3464:1422::-;3561:8;;:28;;;-1:-1:-1;;;;;3561:28:15;;3578:10;3561:28;;;;;;:8;;;;-1:-1:-1;;;;;3561:8:15;;:16;;:28;;;;;;;;;;;;;;;:8;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;3561:28:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3561:28:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3561:28:15;-1:-1:-1;;;;;3561:41:15;;:90;;;3606:8;;;;;;;;;-1:-1:-1;;;;;3606:8:15;-1:-1:-1;;;;;3606:29:15;;3636:8;3606:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3606:39:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3606:39:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3606:39:15;:45;;3647:4;3606:45;3561:90;3553:99;;;;;;3695:8;;:39;;;-1:-1:-1;;;;;3695:39:15;;;;;;;;;;3677:4;;3695:8;;;-1:-1:-1;;;;;3695:8:15;;:29;;:39;;;;;;;;;;;;;;:8;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;3695:39:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3695:39:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3695:39:15;:45;;3736:4;3695:45;3692:887;;;3872:8;;:35;;;-1:-1:-1;;;;;3872:35:15;;;;;;;;;;-1:-1:-1;;3872:8:15;;;-1:-1:-1;;;;;3872:8:15;;:25;;:35;;;;;;;;;;;;;;:8;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;3872:35:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3872:35:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3872:35:15;3931:61;;;-1:-1:-1;;;;;3931:61:15;;3958:10;3931:61;;;;3978:4;3931:61;;;;;;;;;;;;3872:35;;-1:-1:-1;;;;;;3931:26:15;;;;;:61;;;;;3872:35;;3931:61;;;;;;;;-1:-1:-1;3931:26:15;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;3931:61:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3931:61:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3931:61:15;4060:8;;:35;;;-1:-1:-1;;;;;4060:35:15;;;;;;;;;;3931:61;;-1:-1:-1;;;4031:66:15;;4060:8;;;-1:-1:-1;;;;;4060:8:15;;:25;;:35;;;;;3931:61;;4060:35;;;;;;;:8;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;4060:35:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4060:35:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4060:35:15;4031:21;:66::i;:::-;4007:90;;4121:31;4130:6;4138:13;4121:8;:31::i;:::-;4112:40;;3692:887;;;;;4214:8;;:47;;;-1:-1:-1;;;;;4214:47:15;;;;;;;;-1:-1:-1;;;;;4214:47:15;;;;;;-1:-1:-1;;4214:8:15;;;-1:-1:-1;;;;;4214:8:15;;:27;;:47;;;;;;;;;;;;;;:8;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;4214:47:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4214:47:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4214:47:15;;-1:-1:-1;;;;;;4374:24:15;;4393:4;4374:24;4371:196;;4447:9;-1:-1:-1;;;;;4426:53:15;;4480:6;4488:5;4426:68;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4426:68:15;-1:-1:-1;;;;;4426:68:15;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4426:68:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4426:68:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4426:68:15;;-1:-1:-1;4371:196:15;;;4540:27;4553:6;4561:5;4540:12;:27::i;:::-;4531:36;;4371:196;3692:887;;4592:6;4589:290;;;4668:23;;;;:13;:23;;;;;;4665:152;;4714:10;27::-1;;39:1;23:18;;45:23;;4714:25:15;;;;;4784:17;-1:-1:-1;4758:23:15;;;:13;4714:25;4758:23;;;;:43;4665:152;4831:36;4843:6;4851:5;4858:8;4831:11;:36::i;:::-;3464:1422;;;;:::o;2032:107:2:-;1163:9;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2104:28;2123:8;2104:18;:28::i;7676:244:15:-;7779:8;;:28;;;-1:-1:-1;;;;;7779:28:15;;7796:10;7779:28;;;;;;-1:-1:-1;;7779:8:15;;;-1:-1:-1;;;;;7779:8:15;;:16;;:28;;;;;;;;;;;;;;:8;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;7779:28:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7779:28:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7779:28:15;-1:-1:-1;;;;;7779:41:15;;:86;;-1:-1:-1;7824:8:15;;:28;;;-1:-1:-1;;;;;7824:28:15;;7841:10;7824:28;;;;;;:8;;;;-1:-1:-1;;;;;7824:8:15;;:16;;:28;;;;;;;;;;;;;;;:8;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;7824:28:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7824:28:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7824:28:15;-1:-1:-1;;;;;7824:41:15;7779:86;7771:95;;;;;;7884:28;7897:6;7905;7884:12;:28::i;542:164:30:-;600:7;632:5;;;656:6;;;;648:31;;;;;-1:-1:-1;;;;;648:31:30;;;;;;;;;;;;;;;;;;;;;;;;;;;1732:208:28;1794:7;1832:5;;;1856:6;;;:26;;;1881:1;1876;1866:7;:11;;;;;;:16;1856:26;1848:51;;;;;-1:-1:-1;;;;;1848:51:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;875:4;1919:13;;;;-1:-1:-1;;;1732:208:28:o;7213:413:15:-;-1:-1:-1;;;;;7392:16:15;;;;;;:9;:16;;;;;;;;:26;;;;;;;;:39;;;7383:57;;7433:6;7383:8;:57::i;:::-;-1:-1:-1;;;;;7341:16:15;;;;;;:9;:16;;;;;;;;:26;;;;;;;;:39;;:99;7489:20;7351:5;7502:6;7489:5;:20::i;:::-;7570:5;-1:-1:-1;;;;;7559:59:15;;7577:14;;7593:6;7601:16;7611:5;7601:9;:16::i;:::-;7559:59;;;;;;;;;;;;;;;;;;;;;;;;;;7213:413;;;:::o;867:96:0:-;946:10;867:96;:::o;9219:338:32:-;-1:-1:-1;;;;;9313:19:32;;9305:68;;;;-1:-1:-1;;;;;9305:68:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9392:21:32;;9384:68;;;;-1:-1:-1;;;;;9384:68:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9465:18:32;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9517:32;;;;;;;;;;;;;;;;;9219:338;;;:::o;8557:8756:15:-;8716:10;:17;8657:4;;;;;8744:8539;8760:6;8758:1;:8;:20;;;;;8777:1;8770:6;:8;8758:20;8744:8539;;;-1:-1:-1;;;;;8805:16:15;;;;;;:9;:16;;;;;8822:10;:13;;8805:16;;;8833:1;;8822:13;;;;;;;;;;;;;;8805:31;;;;;;;;;;;:44;;;8851:1;8805:47;;:100;;;;-1:-1:-1;;;;;;8856:16:15;;;;;;:9;:16;;;;;8873:10;:13;;8856:16;;;8884:1;;8873:13;;;;;;;;;;;;;;8856:31;;;;;;;;;;;:45;;;8904:1;8856:49;;8805:100;8802:8470;;;9053:13;9069:139;9088:72;9107:6;9115:9;:16;9125:5;-1:-1:-1;;;;;9115:16:15;-1:-1:-1;;;;;9115:16:15;;;;;;;;;;;;:31;9132:10;9143:1;9132:13;;;;;;;;;;;;;;;;9115:31;;;;;;;;;;;:44;;;9088:18;:72::i;:::-;-1:-1:-1;;;;;9162:16:15;;;;;;:9;:16;;;;;9179:10;:13;;9162:16;;;9190:1;;9179:13;;;;;;;;;;;;;;9162:31;;;;;;;;;;;:45;;;9069:18;:139::i;:::-;9053:155;;9278:6;9230:9;:16;9240:5;-1:-1:-1;;;;;9230:16:15;-1:-1:-1;;;;;9230:16:15;;;;;;;;;;;;:31;9247:10;9258:1;9247:13;;;;;;;;;;;;;;;;9230:31;;;;;;;;;;;:44;;;:54;;:67;;;;;9296:1;9288:5;:9;9230:67;:125;;;;-1:-1:-1;;;;;;9301:16:15;;;;;;:9;:16;;;;;9318:10;:13;;9350:5;;9301:16;9318:10;9329:1;;9318:13;;;;;;;;;;;;;;9301:31;;;;;;;;;;;:45;;;:54;;9230:125;9227:8030;;;-1:-1:-1;;;;;9404:15:15;;:5;:15;;-1:-1:-1;;;;;;;;;;;9404:15:15;;;9403:16;9395:47;;;;;-1:-1:-1;;;;;9395:47:15;;;;;;;;;;;;-1:-1:-1;;;;;9395:47:15;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9465:22:15;;-1:-1:-1;;9465:22:15;9483:4;9465:22;;;-1:-1:-1;;;;;9583:16:15;;9465:15;9583:16;;;:9;9465:15;9583:16;9465:15;9583:16;;9600:10;:13;;9574:62;;9465:15;9600:10;9611:1;;9600:13;;;;;;;;;;;;;;9583:31;;;;;;;;;;;:45;;;9630:5;9574:8;:62::i;:::-;-1:-1:-1;;;;;9526:16:15;;;;;;:9;:16;;;;;9543:10;:13;;9526:16;;;9554:1;;9543:13;;;;;;;;;;;;;;9526:31;;;;;;;;;;;:45;;:110;;;;9722:62;9731:9;:16;9741:5;-1:-1:-1;;;;;9731:16:15;-1:-1:-1;;;;;9731:16:15;;;;;;;;;;;;:31;9748:10;9759:1;9748:13;;;;;;;;;;;;;;;;9731:31;;;;;;;;;;;:44;;;9777:6;9722:8;:62::i;:::-;-1:-1:-1;;;;;9675:16:15;;;;;;:9;:16;;;;;9692:10;:13;;9675:16;;;9703:1;;9692:13;;;;;;;;;;;;;;9675:31;;;;;;;;;;;:44;;:109;;;;9810:9;-1:-1:-1;;;;;9810:19:15;9807:2987;;;9901:20;9907:5;9914:6;9901:5;:20::i;:::-;9966:56;9973:5;9980:6;9988:5;9995:10;10006:1;9995:13;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9966:6:15;:56::i;:::-;9948:74;;;;;;;;10108:10;10119:1;10108:13;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10108:22:15;10105:1355;;;10162:39;;-1:-1:-1;;;;;10162:32:15;;;:39;;;;;10195:5;;10162:39;;;;10195:5;10162:32;:39;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10162:39:15;10105:1355;;;10263:8;;;;;;;;;-1:-1:-1;;;;;10263:8:15;-1:-1:-1;;;;;10263:29:15;;10293:10;10304:1;10293:13;;;;;;;;;;;;;;;;10263:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10263:44:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10263:44:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10263:44:15;:50;;10309:4;10263:50;10260:1200;;;10422:8;;10448:10;:13;;10406;;10422:8;;;-1:-1:-1;;;;;10422:8:15;;:25;;10459:1;;10448:13;;;;;;;;;;;;;;10422:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10422:40:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10422:40:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10422:40:15;10493:36;;;-1:-1:-1;;;;;10493:36:15;;-1:-1:-1;;;;;10493:36:15;;;;;;;;;;;;;;;10422:40;;-1:-1:-1;10493:22:15;;;;;;:36;;;;;10422:40;;10493:36;;;;;;;;-1:-1:-1;10493:22:15;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;10493:36:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10493:36:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10260:1200:15;;-1:-1:-1;;10260:1200:15;;10591:8;;10619:10;:13;;10654:3;;10591:8;;;-1:-1:-1;;;;;10591:8:15;;:27;;10630:1;;10619:13;;;;;;;;;;;;;;10591:53;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10591:53:15;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10591:53:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10591:53:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10591:53:15;-1:-1:-1;;;;;10591:67:15;;10588:872;;10780:8;;10808:10;:13;;10760:17;;10780:8;;;-1:-1:-1;;;;;10780:8:15;;:27;;10819:1;;10808:13;;;;;;;;;;;;;;10780:52;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10780:52:15;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10780:52:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10780:52:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10780:52:15;;-1:-1:-1;;;;;;10866:24:15;;10885:4;10866:24;10863:234;;;10925:31;10943:5;10950;10925:17;:31::i;:::-;;10863:234;;;11046:9;-1:-1:-1;;;;;11025:58:15;;11084:5;11091;11025:72;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11025:72:15;-1:-1:-1;;;;;11025:72:15;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;10588:872:15;11159:13;:28;11173:10;11184:1;11173:13;;;;;;;;;;;;;;;;11159:28;;;;;;;;;;;;11189:1;11159:31;11156:304;;11346:7;;-1:-1:-1;;;;;11361:16:15;;;11346:7;11361:16;;;:9;:16;;;;;11378:10;:13;;11346:7;;;;;:14;;11361:16;;11346:7;11389:1;;11378:13;;;;;;;;;;;;;;11361:31;;;;;;;;;;;:41;;;;;;;;;;-1:-1:-1;;;;;11361:41:15;11404:5;11411:10;11422:1;11411:13;;;;;;;;;;;;;;;;;11346:86;;;;;;;;;;-1:-1:-1;;;;;11346:86:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11411:13;11346:86;;;;;11411:13;11346:86;;;;5:2:-1;;;;30:1;27;20:12;5:2;11346:86:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11346:86:15;;;;11156:304;11546:5;-1:-1:-1;;;;;11533:67:15;;11553:10;11564:1;11553:13;;;;;;;;;;;;;;;;11568:5;11575:6;11583:16;11593:5;11583:9;:16::i;:::-;11533:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9807:2987;;;11654:9;-1:-1:-1;;;;;11654:21:15;11651:1143;;;11767:20;11773:5;11780:6;11767:5;:20::i;:::-;11948:55;11955:5;11962:6;11970:5;11977:10;11988:1;11977:13;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11948:6:15;:55::i;:::-;11930:73;;-1:-1:-1;11930:73:15;-1:-1:-1;12095:23:15;12101:8;11930:73;12095:5;:23::i;:::-;-1:-1:-1;;;;;12250:19:15;;;;;;:9;:19;;;;;12270:10;:13;;12241:65;;12250:19;12270:10;12281:1;;12270:13;;;;;;;;;;;;;;12250:34;;;;;;;;;;;:48;;;12300:5;12241:8;:65::i;:::-;-1:-1:-1;;;;;12190:19:15;;;;;;:9;:19;;;;;12210:10;:13;;12190:19;;;12221:1;;12210:13;;;;;;;;;;;;;;12190:34;;;;;;;;;;;:48;;:116;;;;12434:65;12443:9;:19;12453:8;-1:-1:-1;;;;;12443:19:15;-1:-1:-1;;;;;12443:19:15;;;;;;;;;;;;:34;12463:10;12474:1;12463:13;;;;;;;;;;;;;;;;12443:34;;;;;;;;;;;:47;;;12492:6;12434:8;:65::i;:::-;-1:-1:-1;;;;;12384:19:15;;;;;;:9;:19;;;;;12404:10;:13;;12384:19;;;12415:1;;12404:13;;;;;;;;;;;;;;12384:34;;;;;;;;;;;:47;;:115;;;;12638:9;:16;12648:5;-1:-1:-1;;;;;12638:16:15;-1:-1:-1;;;;;12638:16:15;;;;;;;;;;;;:31;12655:10;12666:1;12655:13;;;;;;;;;;;;;;;;12638:31;;;;;;;;;;;:41;;;;;;;;;;-1:-1:-1;;;;;12638:41:15;12591:9;:19;12601:8;-1:-1:-1;;;;;12591:19:15;-1:-1:-1;;;;;12591:19:15;;;;;;;;;;;;:34;12611:10;12622:1;12611:13;;;;;;;;;;;;;;;;12591:34;;;;;;;;;;;:44;;;:88;;;;;-1:-1:-1;;;;;12591:88:15;;;;;-1:-1:-1;;;;;12591:88:15;;;;;;12731:8;-1:-1:-1;;;;;12711:59:15;12724:5;-1:-1:-1;;;;;12711:59:15;;12741:10;12752:1;12741:13;;;;;;;;;;;;;;;;;;;12711:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;11651:1143;-1:-1:-1;;;;;12825:1:15;12884:15;;;:5;:15;;-1:-1:-1;;;;;;;;;;;12884:23:15;;-1:-1:-1;;12884:23:15;;;12825:1;-1:-1:-1;12857:4:15;;-1:-1:-1;9227:8030:15;;;-1:-1:-1;;;;;13068:16:15;;13115:1;13068:16;;;:9;:16;;;;;13085:10;:13;;13115:1;;13085:10;13096:1;;13085:13;;;;;;;;;;;;;;13068:31;;;;;;;;;;;:44;;;:48;:61;;;;;13128:1;13120:5;:9;13068:61;13065:4192;;;-1:-1:-1;;;;;13194:15:15;;:5;:15;;-1:-1:-1;;;;;;;;;;;13194:15:15;;;13193:16;13185:47;;;;;-1:-1:-1;;;;;13185:47:15;;;;;;;;;;;;-1:-1:-1;;;;;13185:47:15;;;;;;;;;;;;;;;-1:-1:-1;;;;;13255:15:15;;;;:5;:15;;-1:-1:-1;;;;;;;;;;;13255:22:15;;-1:-1:-1;;13255:22:15;13273:4;13255:22;;;13324:6;;13362:19;;13359:3408;;;13457:58;13463:5;13470:9;:16;13480:5;-1:-1:-1;;;;;13470:16:15;-1:-1:-1;;;;;13470:16:15;;;;;;;;;;;;:31;13487:10;13498:1;13487:13;;;;;;;;;;;;;;;;13470:31;;;;;;;;;;;:44;;;13457:5;:58::i;:::-;13661:134;13668:5;13675:9;:16;13685:5;-1:-1:-1;;;;;13675:16:15;-1:-1:-1;;;;;13675:16:15;;;;;;;;;;;;:31;13692:10;13703:1;13692:13;;;;;;;;;;;;;;;;13675:31;;;;;;;;;;;:44;;;13721:9;:16;13731:5;-1:-1:-1;;;;;13721:16:15;-1:-1:-1;;;;;13721:16:15;;;;;;;;;;;;:31;13738:10;13749:1;13738:13;;;;;;;;;;;;;;;;13721:31;;;;;;;;;;;:45;;;13768:10;13779:1;13768:13;;;;;;;13661:134;13643:152;;;;;;;;13951:10;13962:1;13951:13;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13951:22:15;13948:1357;;;14009:39;;-1:-1:-1;;;;;14009:32:15;;;:39;;;;;14042:5;;14009:39;;;;14042:5;14009:32;:39;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14009:39:15;13948:1357;;;14110:8;;;;;;;;;-1:-1:-1;;;;;14110:8:15;-1:-1:-1;;;;;14110:29:15;;14140:10;14151:1;14140:13;;;;;;;;;;;;;;;;14110:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14110:44:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14110:44:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14110:44:15;:50;;14156:4;14110:50;14107:1198;;;14263:8;;14289:10;:13;;14247;;14263:8;;;-1:-1:-1;;;;;14263:8:15;;:25;;14300:1;;14289:13;;;;;;;;;;;;;;14263:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14263:40:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14263:40:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14263:40:15;14334:36;;;-1:-1:-1;;;;;14334:36:15;;-1:-1:-1;;;;;14334:36:15;;;;;;;;;;;;;;;14263:40;;-1:-1:-1;14334:22:15;;;;;;:36;;;;;14263:40;;14334:36;;;;;;;;-1:-1:-1;14334:22:15;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;14334:36:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14334:36:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14107:1198:15;;-1:-1:-1;;14107:1198:15;;14432:8;;14460:10;:13;;14495:3;;14432:8;;;-1:-1:-1;;;;;14432:8:15;;:27;;14471:1;;14460:13;;;;;;;;;;;;;;14432:53;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14432:53:15;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14432:53:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14432:53:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14432:53:15;-1:-1:-1;;;;;14432:67:15;;14429:876;;14620:8;;14648:10;:13;;14600:17;;14620:8;;;-1:-1:-1;;;;;14620:8:15;;:27;;14659:1;;14648:13;;;;;;;;;;;;;;14620:52;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14620:52:15;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14620:52:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14620:52:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14620:52:15;;-1:-1:-1;;;;;;14706:24:15;;14725:4;14706:24;14703:234;;;14765:31;14783:5;14790;14765:17;:31::i;:::-;;14703:234;;;14886:9;-1:-1:-1;;;;;14865:58:15;;14924:5;14931;14865:72;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14865:72:15;-1:-1:-1;;;;;14865:72:15;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;14429:876:15;15004:13;:28;15018:10;15029:1;15018:13;;;;;;;;;;;;;;;;15004:28;;;;;;;;;;;;15034:1;15004:31;15001:304;;15191:7;;-1:-1:-1;;;;;15206:16:15;;;15191:7;15206:16;;;:9;:16;;;;;15223:10;:13;;15191:7;;;;;:14;;15206:16;;15191:7;15234:1;;15223:13;;;;;;;;;;;;;;15206:31;;;;;;;;;;;:41;;;;;;;;;;-1:-1:-1;;;;;15206:41:15;15249:5;15256:10;15267:1;15256:13;;;;;;;;;;;;;;;;;15191:86;;;;;;;;;;-1:-1:-1;;;;;15191:86:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15256:13;15191:86;;;;;15256:13;15191:86;;;;5:2:-1;;;;30:1;27;20:12;5:2;15191:86:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15191:86:15;;;;15001:304;15406:5;-1:-1:-1;;;;;15393:105:15;;15413:10;15424:1;15413:13;;;;;;;;;;;;;;;;15428:5;15435:9;:16;15445:5;-1:-1:-1;;;;;15435:16:15;-1:-1:-1;;;;;15435:16:15;;;;;;;;;;;;:31;15452:10;15463:1;15452:13;;;;;;;;;;;;;;;;15435:31;;;;;;;;;;;:44;;;15481:16;15491:5;15481:9;:16::i;:::-;15393:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13359:3408;;;15552:9;-1:-1:-1;;;;;15552:21:15;15549:1218;;;15665:58;15671:5;15678:9;:16;15688:5;-1:-1:-1;;;;;15678:16:15;-1:-1:-1;;;;;15678:16:15;;;;;;;;;;;;:31;15695:10;15706:1;15695:13;;;;;;;15665:58;15883:133;15890:5;15897:9;:16;15907:5;-1:-1:-1;;;;;15897:16:15;-1:-1:-1;;;;;15897:16:15;;;;;;;;;;;;:31;15914:10;15925:1;15914:13;;;;;;;;;;;;;;;;15897:31;;;;;;;;;;;:44;;;15943:9;:16;15953:5;-1:-1:-1;;;;;15943:16:15;-1:-1:-1;;;;;15943:16:15;;;;;;;;;;;;:31;15960:10;15971:1;15960:13;;;;;;;;;;;;;;;;15943:31;;;;;;;;;;;:45;;;15990:10;16001:1;15990:13;;;;;;;15883:133;15865:151;;-1:-1:-1;15865:151:15;-1:-1:-1;16088:23:15;16094:8;15865:151;16088:5;:23::i;:::-;-1:-1:-1;;;;;16243:19:15;;;;;;:9;:19;;;;;16263:10;:13;;16234:65;;16243:19;16263:10;16274:1;;16263:13;;;;;;;;;;;;;;16243:34;;;;;;;;;;;:48;;;16293:5;16234:8;:65::i;:::-;-1:-1:-1;;;;;16183:19:15;;;;;;:9;:19;;;;;16203:10;:13;;16183:19;;;16214:1;;16203:13;;;;;;;;;;;;;;16183:34;;;;;;;;;;;:48;;:116;;;;16427:65;16436:9;:19;16446:8;-1:-1:-1;;;;;16436:19:15;-1:-1:-1;;;;;16436:19:15;;;;;;;;;;;;:34;16456:10;16467:1;16456:13;;;;;;;;;;;;;;;;16436:34;;;;;;;;;;;:47;;;16485:6;16427:8;:65::i;:::-;-1:-1:-1;;;;;16377:19:15;;;;;;:9;:19;;;;;16397:10;:13;;16377:19;;;16408:1;;16397:13;;;;;;;;;;;;;;16377:34;;;;;;;;;;;:47;;:115;;;;16611:9;:16;16621:5;-1:-1:-1;;;;;16611:16:15;-1:-1:-1;;;;;16611:16:15;;;;;;;;;;;;:31;16628:10;16639:1;16628:13;;;;;;;;;;;;;;;;16611:31;;;;;;;;;;;:41;;;;;;;;;;-1:-1:-1;;;;;16611:41:15;16564:9;:19;16574:8;-1:-1:-1;;;;;16564:19:15;-1:-1:-1;;;;;16564:19:15;;;;;;;;;;;;:34;16584:10;16595:1;16584:13;;;;;;;;;;;;;;;;16564:34;;;;;;;;;;;:44;;;:88;;;;;-1:-1:-1;;;;;16564:88:15;;;;;-1:-1:-1;;;;;16564:88:15;;;;;;16704:8;-1:-1:-1;;;;;16684:59:15;16697:5;-1:-1:-1;;;;;16684:59:15;;16714:10;16725:1;16714:13;;;;;;;;;;;;;;;;;;;16684:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;15549:1218;16870:59;16879:3;16884:9;:16;16894:5;-1:-1:-1;;;;;16884:16:15;-1:-1:-1;;;;;16884:16:15;;;;;;;;;;;;:31;16901:10;16912:1;16901:13;;;;;;;;;;;;;;;;16884:31;;;;;;;;;;;:44;;;16870:8;:59::i;:::-;16861:68;;17068:1;17020:9;:16;17030:5;-1:-1:-1;;;;;17020:16:15;-1:-1:-1;;;;;17020:16:15;;;;;;;;;;;;:31;17037:10;17048:1;17037:13;;;;;;;;;;;;;;;;17020:31;;;;;;;;;;;:45;;:49;;;;17155:1;17108:9;:16;17118:5;-1:-1:-1;;;;;17108:16:15;-1:-1:-1;;;;;17108:16:15;;;;;;;;;;;;:31;17125:10;17136:1;17125:13;;;;;;;;;;;;;;;;;;;;17108:31;;;;;;;;;;;;;;;:44;;;;:48;;;;-1:-1:-1;;;;;17214:15:15;;:5;:15;;-1:-1:-1;;;;;;;;;;;17214:23:15;;-1:-1:-1;;17214:23:15;;;17108:44;-1:-1:-1;;13065:4192:15;8802:8470;;8780:3;;8744:8539;;;-1:-1:-1;17300:5:15;;8557:8756;-1:-1:-1;;;;;;8557:8756:15:o;834:176:1:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:1;;;;;;;;;;;;;;;;;;;;;;;;;;;491:88:33;531:6;:14;;-1:-1:-1;;531:14:33;;;561:10;;;;540:5;;561:10;491:88::o;2582:354:28:-;2644:7;2672:6;2664:32;;;;;-1:-1:-1;;;;;2664:32:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;2713:6;2709:220;;-1:-1:-1;2743:1:28;2736:8;;2709:220;875:4;2797:7;;;;:1;:7;:1;2827:13;;;;;:20;2819:45;;;;;-1:-1:-1;;;;;2819:45:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;2916:1;2904:9;:13;;;;;;2897:20;;;;;1129:164:30;1187:7;1220:1;1215;:6;;1207:31;;;;;-1:-1:-1;;;;;1207:31:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1261:5:30;;;1129:164::o;8431:348:32:-;-1:-1:-1;;;;;8507:21:32;;8499:67;;;;-1:-1:-1;;;;;8499:67:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8600:68;8623:6;8600:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8600:18:32;;;;;;:9;:18;;;;;;;:68;;:22;:68;:::i;:::-;-1:-1:-1;;;;;8579:18:32;;;;;;:9;:18;;;;;:89;8694:12;;:24;;8711:6;8694:24;:16;:24;:::i;:::-;8679:12;:39;8734:37;;;;;;;;8760:1;;-1:-1:-1;;;;;8734:37:32;;;;;;;;;;;;8431:348;;:::o;298:83:33:-;336:6;:13;;-1:-1:-1;;336:13:33;345:4;336:13;;;365:8;;;;336:6;;365:8;298:83::o;1409:498:4:-;1820:4;1864:17;1895:7;1409:498;:::o;2090:79:32:-;2148:13;;;;:5;;:13;;;;;:::i;2383:87::-;2445:17;;;;:7;;:17;;;;;:::i;1732:187:1:-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;;;1837:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1837:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1888:5:1;;;1732:187::o;7039:471:32:-;-1:-1:-1;;;;;7137:20:32;;7129:70;;;;-1:-1:-1;;;;;7129:70:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7218:23:32;;7210:71;;;;-1:-1:-1;;;;;7210:71:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7314;7336:6;7314:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7314:17:32;;;;;;:9;:17;;;;;;;:71;;:21;:71;:::i;:::-;-1:-1:-1;;;;;7294:17:32;;;;;;;:9;:17;;;;;;:91;;;;7419:20;;;;;;;:32;;7444:6;7419:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;7396:20:32;;;;;;;:9;:20;;;;;;;;;:55;;;;7467:35;;;;;;;7396:20;;7467:35;;;;;;;;;;;;;7039:471;;;:::o;18293:517:15:-;18371:7;18499:6;18471:24;18489:4;18471:9;:24::i;:::-;:34;18468:335;;18521:42;18539:4;18546:8;18556:6;18521:9;:42::i;:::-;-1:-1:-1;18585:1:15;18578:8;;18468:335;18627:15;18645:42;18654:6;18662:24;18680:4;18662:9;:24::i;:::-;18645:8;:42::i;:::-;18627:60;;18702;18720:4;18727:8;18737:24;18755:4;18737:9;:24::i;:::-;18702:9;:60::i;:::-;18784:7;-1:-1:-1;18777:14:15;;23104:416;23172:7;23275:21;23313:5;-1:-1:-1;;;;;23299:30:15;;:32;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23299:32:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23299:32:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23299:32:15;23275:56;;;-1:-1:-1;23409:26:15;23438:27;23447:2;23275:56;23438:8;:27::i;:::-;23490:2;:22;23483:4;:29;;;-1:-1:-1;;;;23104:416:15:o;23528:164::-;23608:7;23643:41;23662:6;23670:13;23643:18;:41::i;8006:324::-;8077:4;8182:6;8161:17;8171:6;8161:9;:17::i;:::-;:27;8158:164;;8204:40;8214:6;8230:4;8237:6;8204:9;:40::i;:::-;-1:-1:-1;8266:4:15;8259:11;;2240:225:2;-1:-1:-1;;;;;2313:22:2;;2305:73;;;;-1:-1:-1;;;;;2305:73:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2414:6;;2393:38;;-1:-1:-1;;;;;2393:38:2;;;;2414:6;;2393:38;;2414:6;;2393:38;2441:6;:17;;-1:-1:-1;;;;;;2441:17:2;-1:-1:-1;;;;;2441:17:2;;;;;;;;;;2240:225::o;7791:308:32:-;-1:-1:-1;;;;;7867:21:32;;7859:65;;;;;-1:-1:-1;;;;;7859:65:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;7952:12;;:24;;7969:6;7952:24;:16;:24;:::i;:::-;7937:12;:39;-1:-1:-1;;;;;8008:18:32;;;;;;:9;:18;;;;;;:30;;8031:6;8008:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;7987:18:32;;;;;;:9;:18;;;;;;;;:51;;;;8054:37;;;;;;;7987:18;;;;8054:37;;;;;;;;;;7791:308;;:::o;21385:1035:15:-;21498:7;21507;21526:12;21552:6;-1:-1:-1;;;;;21552:18:15;21549:156;;;21592:6;;:27;;;-1:-1:-1;;;;;21592:27:15;;-1:-1:-1;;;;;21592:27:15;;;;;;-1:-1:-1;;;;;21592:6:15;;;;:13;;:27;;;;;;;;;;;;;;;:6;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;21592:27:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21592:27:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21592:27:15;;-1:-1:-1;21549:156:15;;;21638:6;-1:-1:-1;;;;;21638:19:15;21635:70;;;21679:6;;:26;;;-1:-1:-1;;;;;21679:26:15;;-1:-1:-1;;;;;21679:26:15;;;;;;-1:-1:-1;;;;;21679:6:15;;;;:13;;:26;;;;;;;;;;;;;;;:6;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;21679:26:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21679:26:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21679:26:15;;-1:-1:-1;21635:70:15;21719:8;;21716:664;;21759:6;;:21;;;-1:-1:-1;;;;;21759:21:15;;;;21743:13;;-1:-1:-1;;;;;21759:6:15;;:19;;:21;;;;;;;;;;;;;;:6;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;21759:21:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21759:21:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21759:21:15;;-1:-1:-1;;;;;;21798:19:15;;;21795:574;;21837:57;21847:5;21854;21861:32;21880:4;21886:6;21861:18;:32::i;21837:57::-;-1:-1:-1;;;;;21964:16:15;;;;;;:9;:16;;;;;;;;:26;;;;;;;;:39;;;21955:83;;22005:32;22024:4;22030:6;22005:18;:32::i;21955:83::-;-1:-1:-1;;;;;21913:16:15;;;;;;:9;:16;;;;;;;;:26;;;;;;;;:39;;;:125;;;;22109:40;22100:83;;22151:31;22170:4;22176:5;22151:18;:31::i;22100:83::-;-1:-1:-1;;;;;22057:16:15;;;;;;:9;:16;;;;;;;;:26;;;;;;;;:126;22211:50;22220:6;22228:32;22247:4;22220:6;22228:18;:32::i;22211:50::-;22202:59;;22288:48;22297:5;22304:31;22323:4;22329:5;22304:18;:31::i;22288:48::-;22280:56;;21795:574;21716:664;;-1:-1:-1;22398:6:15;;22406:5;;-1:-1:-1;21385:1035:15;;-1:-1:-1;;;;21385:1035:15:o;1274:134:1:-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;729:23304:15:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;729:23304:15;;;-1:-1:-1;729:23304:15;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;",
    "source": "// (c) Kallol Borah, 2020\r\n// Implementation of the Verified cash token.\r\n// SPDX-License-Identifier: BUSL\r\n\r\npragma solidity 0.5.7;\r\n\r\nimport \"./interfaces/ViaCash.sol\";\r\nimport \"./interfaces/ViaBond.sol\";\r\nimport \"./interfaces/ViaToken.sol\";\r\nimport \"./interfaces/ViaOracle.sol\";\r\nimport \"./interfaces/ViaFactory.sol\";\r\nimport \"./interfaces/VerifiedClient.sol\";\r\nimport \"./interfaces/VerifiedRates.sol\";\r\n\r\nimport \"./math/Math.sol\";\r\nimport \"./math/FixedPoint.sol\";\r\n\r\nimport \"./utilities/Pausable.sol\";\r\nimport \"./utilities/StringUtils.sol\";\r\nimport \"./utilities/ERC20.sol\";\r\n\r\nimport \"@openzeppelin/upgrades/contracts/Initializable.sol\";\r\nimport \"@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol\";\r\n\r\ncontract Cash is ViaCash, Initializable, ERC20, Ownable, Pausable {\r\n\r\n    using stringutils for *;\r\n    using Math for uint256;\r\n    using FixedPoint for uint256;\r\n\r\n    //via factory address\r\n    ViaFactory private _factory;\r\n\r\n    VerifiedRates private _rates;\r\n\r\n    //via oracle\r\n    ViaOracle private _oracle;\r\n\r\n    //name of Via cash token (eg, Via-USD)\r\n    bytes32 public _cashtokenName;\r\n\r\n    struct deposit{\r\n        uint256 depositAmount;\r\n        uint256 issuedAmount;\r\n        address depositor;\r\n    }\r\n\r\n    bytes32[] private currencies;\r\n\r\n    mapping(bytes32 => uint256) private currencyIndex;\r\n\r\n    //mapping of buyers (address) to deposit currency (bytes32) to deposits \r\n    mapping(address => mapping(bytes32 => deposit)) public _deposits;\r\n\r\n    modifier onlyCustodian(address sender){\r\n        //address client = _factory.getClient();\r\n        //(bytes32 role, , ) = VerifiedClient(client).getRole(sender);\r\n        //require(role==\"Custodian\" || role==\"Admin\");\r\n        _;\r\n    }\r\n\r\n    //events to capture and report to Via oracle\r\n    event CashIssued(address indexed party, bytes32 currency, uint256 amount, uint256 balance);\r\n    event CashRedeemed(address indexed party, bytes32 currency, uint256 amount, uint256 redeemedFor, uint256 balance);\r\n    event CashDeposits(address indexed party, bytes32 currency, uint256 amount);\r\n    event CashTransfer(address indexed party, address indexed counterparty, bytes32 currency, uint256 amount, uint256 deposit);\r\n\r\n    //mutex\r\n    mapping(bytes32 => bool) private _lock;\r\n\r\n    //initiliaze proxies\r\n    function initialize(bytes32 name, bytes32 currency, address owner, address oracle, address token, address fee) public initializer{\r\n        Ownable.initialize(owner);        \r\n        _factory = ViaFactory(msg.sender);\r\n        _oracle = ViaOracle(oracle);\r\n        setName(string(abi.encodePacked(name)));\r\n        setSymbol(name.substring(0,5));\r\n        _cashtokenName = currency;\r\n        _rates = VerifiedRates(fee);\r\n    }\r\n\r\n    //handling pay in of ether for issue of via cash tokens\r\n    function() external payable {\r\n        //ether paid in\r\n        require(msg.value !=0);\r\n        //only to pay in ether\r\n        require(msg.data.length==0);\r\n        //contract must not be paused\r\n        require(paused == false);\r\n        //check aml status\r\n        require(amlCheck(msg.sender)==true);        \r\n        //keep paid in currency for reference\r\n        if(currencyIndex[\"ether\"]==0){\r\n            currencies.push(\"ether\");\r\n            currencyIndex[\"ether\"] = currencies.length;\r\n        }\r\n        //issue via cash tokens\r\n        makeDeposit(msg.value, msg.sender, \"ether\");        \r\n    }\r\n    \r\n    //accessor for issue function\r\n    function requestIssue(uint256 amount, address buyer, bytes32 currency) public {\r\n        require(_factory.getType(msg.sender) == \"ViaCash\" || _factory.checkSupportForToken(currency)==true);\r\n        bool status = true;\r\n        if(_factory.checkSupportForToken(currency)==true){\r\n            //for ERC20 tokens supported by Verified such as DAI, USDC, etc                       \r\n            address token = _factory.getCurrencyToken(currency);\r\n            status = IERC20(token).transferFrom(msg.sender, address(this), amount);\r\n            uint256 scalingFactor = _computeScalingFactor(IERC20(_factory.getCurrencyToken(currency)));\r\n            amount = _upscale(amount, scalingFactor);\r\n        }\r\n        else {\r\n            address cashToken = _factory.getTokenByNameType(currency,\"ViaCash\");\r\n            //transfer amount of currency from party to the deposit currency's cash contract \r\n            if(cashToken!=address(this))\r\n                status = Cash(address(uint160(cashToken))).requestAddToBalance(amount, buyer);\r\n            else\r\n                status = addToBalance(amount, buyer);\r\n        }\r\n        if(status){\r\n            //keep paid in currency for reference\r\n            if(currencyIndex[currency]==0){\r\n                currencies.push(currency);\r\n                currencyIndex[currency] = currencies.length;\r\n            }\r\n            makeDeposit(amount, buyer, currency);\r\n        }\r\n    }\r\n    \r\n    //requesting issue of Via to buyer for amount of ether or some other supported cash token paid in and stored in cashContract\r\n    function makeDeposit(uint256 amount, address buyer, bytes32 currency) private {\r\n        //ensure that brought amount is not zero\r\n        require(amount != 0);\r\n        require(!_lock[\"receipt\"], \"Lock on deposits\");\r\n        _lock[\"receipt\"] = true;\r\n        _deposits[buyer][currency].depositAmount = Math.add(_deposits[buyer][currency].depositAmount, amount);\r\n        _deposits[buyer][currency].depositor = buyer;\r\n        // request oracle for exchange value of crypto paid in\r\n        uint256 rate;\r\n        if(_factory.getTokenByNameType(currency, \"ViaCash\")!=address(0x0))\r\n            //exchange of one verified cash token to another\r\n            rate = _oracle.request(currency, _cashtokenName, \"ver\");\r\n        else\r\n            //exchange of paid in supported token (not a verified cash token) to the fiat currency corresponding to this verified cash token\r\n            rate = _oracle.request(currency, _cashtokenName.substringinbytes(2,5), \"er\");\r\n        emit CashDeposits(buyer, currency, amount);\r\n        issue(buyer, currency, FixedPoint.mulDown(rate, amount));\r\n        _lock[\"receipt\"] = false;     \r\n    }\r\n\r\n    //handles fiat pay in for issue of cash tokens by authorized custodians on Verified Network\r\n    function payIn(uint256 amount, address payer, bytes32 currency) onlyCustodian(msg.sender) external returns(bool){\r\n        //contract must not be paused\r\n        require(paused == false);\r\n        //keep paid in currency for reference\r\n        if(currencyIndex[currency]==0){\r\n            currencies.push(currency);\r\n            currencyIndex[currency] = currencies.length;\r\n        }\r\n        _deposits[payer][currency].depositor = msg.sender;\r\n        _deposits[payer][currency].depositAmount = Math.add(_deposits[payer][currency].depositAmount, amount);\r\n        emit CashDeposits(payer, currency, amount);\r\n        //scale up paid in amount, just in case decimals are incorrectly sent by app\r\n        issue(payer, currency, FixedPoint.mulDown(amount, 1e18));\r\n    }\r\n\r\n    //party is the user account address to which issued tokens are credited \r\n    //currency is what is paid in\r\n    //amount is quantity of this verified cash token to issue\r\n    function issue(address party, bytes32 currency, uint256 amount) private {\r\n        //add paid in currency to depositor\r\n        _deposits[party][currency].issuedAmount = Math.add(_deposits[party][currency].issuedAmount, amount);\r\n        //add issued amount to payer\r\n        _mint(party, amount);\r\n        //generate event        \r\n        emit CashIssued(party, _cashtokenName, amount, balanceOf(party));\r\n    }\r\n\r\n    //accessor for addToBalance function\r\n    function requestAddToBalance(uint256 tokens, address sender) external returns (bool){\r\n        require(_factory.getType(msg.sender) == \"ViaCash\" || _factory.getType(msg.sender) == \"ViaBond\");\r\n        return addToBalance(tokens, sender);\r\n    }\r\n    \r\n    //add to token balance of this contract from token balance of sender\r\n    function addToBalance(uint256 tokens, address sender) private returns (bool){\r\n        //sender should have more tokens than being transferred\r\n        if(balanceOf(sender) >= tokens){\r\n            _transfer(sender, address(this), tokens);\r\n            return true;\r\n        }\r\n        else\r\n            return false;\r\n    }\r\n    \r\n    //requesting redemption of Verified cash token and transfer of currency it was issued against\r\n    //operation parameter indicates whether it is a redemption or a transfer of deposits from one party to another\r\n    function redeem(uint256 amount, address party, bytes32 operation, address receiver) private returns(bool){\r\n        bool found = false;\r\n        uint length = currencies.length;\r\n        for(uint i=0; i<length && amount>0; i++){   \r\n            if(_deposits[party][currencies[i]].issuedAmount!=0 && _deposits[party][currencies[i]].depositAmount !=0){\r\n                //check if currency in which redemption is to be done has sufficient issued balance for the deposited currency\r\n                uint256 value = FixedPoint.mulDown(FixedPoint.divDown(amount, _deposits[party][currencies[i]].issuedAmount), _deposits[party][currencies[i]].depositAmount);\r\n                if(_deposits[party][currencies[i]].issuedAmount >= amount && value > 0 && _deposits[party][currencies[i]].depositAmount >= value){                \r\n                    require(!_lock[\"redeem\"], \"Lock on redemption\");\r\n                    _lock[\"redeem\"] = true;                \r\n                    _deposits[party][currencies[i]].depositAmount = Math.sub(_deposits[party][currencies[i]].depositAmount, value);                \r\n                    _deposits[party][currencies[i]].issuedAmount = Math.sub(_deposits[party][currencies[i]].issuedAmount, amount);\r\n                    if(operation==\"redeem\"){\r\n                        //reduces balances\r\n                        _burn(party, amount);\r\n                        (amount, value) = payFee(party, amount, value, currencies[i], \"withdrawl\");\r\n                        //send redeemed ether to party\r\n                        if(currencies[i]==\"ether\"){\r\n                            address(uint160(party)).transfer(value);\r\n                        }\r\n                        else if(_factory.checkSupportForToken(currencies[i])==true){\r\n                            //non verified cash ERC20 token\r\n                            address token = _factory.getCurrencyToken(currencies[i]);\r\n                            IERC20(token).transfer(party, value);\r\n                        }\r\n                        else if(_factory.getTokenByNameType(currencies[i], \"ViaCash\")!=address(0x0)){   \r\n                            //verified cash token                \r\n                            address cashToken = _factory.getTokenByNameType(currencies[i],\"ViaCash\");\r\n                            if(cashToken==address(this))\r\n                                deductFromBalance(value, party);\r\n                            else\r\n                                Cash(address(uint160(cashToken))).requestDeductFromBalance(value, party);\r\n                        }\r\n                        else if(currencyIndex[currencies[i]]!=0){\r\n                            //if currency to redeem is fiat counterpart of this cash token, request oracle to pay out fiat\r\n                            _oracle.payOut(_deposits[party][currencies[i]].depositor, party, currencies[i], value);\r\n                        }\r\n                        //generate event\r\n                        emit CashRedeemed(party, currencies[i], value, amount, balanceOf(party));\r\n                    }\r\n                    else if(operation==\"transfer\"){                    \r\n                        //reduces balances\r\n                        _burn(party, amount); \r\n                        //check if any fee is payable on remittance and acceptance and pay it if that is the case\r\n                        (amount, value) = payFee(party, amount, value, currencies[i], \"transfer\");                    \r\n                        //transfer balances\r\n                        _mint(receiver, amount);\r\n                        //transfer deposits\r\n                        _deposits[receiver][currencies[i]].depositAmount = Math.add(_deposits[receiver][currencies[i]].depositAmount, value);\r\n                        //transfer issued amounts\r\n                        _deposits[receiver][currencies[i]].issuedAmount = Math.add(_deposits[receiver][currencies[i]].issuedAmount, amount);                    \r\n                        //change depositor \r\n                        _deposits[receiver][currencies[i]].depositor = _deposits[party][currencies[i]].depositor;\r\n                        emit CashTransfer(party, receiver, currencies[i], amount, value);\r\n                    }\r\n                    amount = 0;\r\n                    found = true;\r\n                    _lock[\"redeem\"] = false;\r\n                }\r\n                //amount to redeem is more than what is in deposit, so we need to remove deposit after redemption\r\n                else if(_deposits[party][currencies[i]].issuedAmount > 0 && value > 0){                                \r\n                    require(!_lock[\"redeem\"], \"Lock on redemption\");\r\n                    _lock[\"redeem\"] = true;          \r\n                    uint256 ref = amount;      \r\n                    if(operation==\"redeem\"){    \r\n                        //reduces balances\r\n                        _burn(party, _deposits[party][currencies[i]].issuedAmount); \r\n                        //check if any fee is payable on redemption and pay it if that is the case\r\n                        (amount, value) = payFee(party, _deposits[party][currencies[i]].issuedAmount, _deposits[party][currencies[i]].depositAmount, currencies[i], \"withdrawl\");          \r\n                        //send redeemed ether to party which is all of the ether in deposit with this user (party)\r\n                        if(currencies[i]==\"ether\"){    \r\n                            address(uint160(party)).transfer(value);\r\n                        }\r\n                        else if(_factory.checkSupportForToken(currencies[i])==true){\r\n                            //non verified cash token\r\n                            address token = _factory.getCurrencyToken(currencies[i]);\r\n                            IERC20(token).transfer(party, value);\r\n                        }\r\n                        else if(_factory.getTokenByNameType(currencies[i], \"ViaCash\")!=address(0x0)){  \r\n                            //verified cash token                \r\n                            address cashToken = _factory.getTokenByNameType(currencies[i],\"ViaCash\");\r\n                            if(cashToken==address(this))\r\n                                deductFromBalance(value, party);\r\n                            else\r\n                                Cash(address(uint160(cashToken))).requestDeductFromBalance(value, party);\r\n                        }     \r\n                        else if(currencyIndex[currencies[i]]!=0){\r\n                            //if currency to redeem is fiat counterpart of this cash token, request oracle to pay out fiat\r\n                            _oracle.payOut(_deposits[party][currencies[i]].depositor, party, currencies[i], value);\r\n                        }               \r\n                        //generate event\r\n                        emit CashRedeemed(party, currencies[i], value, _deposits[party][currencies[i]].issuedAmount, balanceOf(party));\r\n                    }\r\n                    else if(operation==\"transfer\"){                    \r\n                        //reduces balances\r\n                        _burn(party, _deposits[party][currencies[i]].issuedAmount);\r\n                        //check if any fee is payable on remittance and acceptance and pay it if that is the case\r\n                        (amount, value) = payFee(party, _deposits[party][currencies[i]].issuedAmount, _deposits[party][currencies[i]].depositAmount, currencies[i], \"transfer\");\r\n                        //transfer balances\r\n                        _mint(receiver, amount);\r\n                        //transfer deposits\r\n                        _deposits[receiver][currencies[i]].depositAmount = Math.add(_deposits[receiver][currencies[i]].depositAmount, value);\r\n                        //transfer issued amounts\r\n                        _deposits[receiver][currencies[i]].issuedAmount = Math.add(_deposits[receiver][currencies[i]].issuedAmount, amount);\r\n                        //change depositor \r\n                        _deposits[receiver][currencies[i]].depositor = _deposits[party][currencies[i]].depositor;\r\n                        emit CashTransfer(party, receiver, currencies[i], amount, value);\r\n                    }\r\n                    //calculate remaining amount to redeem or transfer\r\n                    amount = Math.sub(ref, _deposits[party][currencies[i]].issuedAmount);\r\n                    //make deposit and issued amount balances zero\r\n                    _deposits[party][currencies[i]].depositAmount = 0;                \r\n                    _deposits[party][currencies[i]].issuedAmount = 0;\r\n                    found = true;\r\n                    _lock[\"redeem\"] = false;\r\n                }\r\n            }\r\n        }\r\n        return found;\r\n    }\r\n\r\n    function burnCashTokens(uint256 amount, address party, bytes32 currency) onlyCustodian(msg.sender) external returns(bool){\r\n        uint256 value = FixedPoint.mulDown(FixedPoint.divDown(amount, _deposits[party][currency].issuedAmount), _deposits[party][currency].depositAmount);\r\n        _deposits[party][currency].depositAmount = Math.sub(_deposits[party][currency].depositAmount, value);\r\n        //reduces balances\r\n        _burn(party, amount);\r\n        _deposits[party][currency].issuedAmount = Math.sub(_deposits[party][currency].issuedAmount, amount);\r\n    } \r\n\r\n    //accessor for deductFromBalance function\r\n    function requestDeductFromBalance(uint256 tokens, address receiver) external returns (uint256){\r\n        require(_factory.getType(msg.sender) == \"ViaCash\" || _factory.getType(msg.sender) == \"ViaBond\");\r\n        return(deductFromBalance(tokens, receiver));\r\n    }\r\n\r\n    //deduct token balance from this contract and add token balance to receiver\r\n    function deductFromBalance(uint256 tokens, address receiver) private returns (uint256){\r\n        //this cash token issuer should have more tokens than being deducted\r\n        if(balanceOf(address(this)) >= tokens){\r\n            _transfer(address(this), receiver, tokens);\r\n            return 0;\r\n        }\r\n        else{\r\n            uint256 balance = Math.sub(tokens, balanceOf(address(this)));\r\n            _transfer(address(this), receiver, balanceOf(address(this)));\r\n            return balance;\r\n        }\r\n    }\r\n    \r\n    //overriding this function of ERC20 standard for transfer of via cash tokens to other users or to this contract for redemption\r\n    function transferFrom(address sender, address receiver, uint256 tokens) public returns (bool){\r\n        //contract must not be paused\r\n        require(paused == false);\r\n        //check aml status\r\n        require(amlCheck(sender)==true);\r\n        require(amlCheck(receiver)==true);\r\n        //ensure sender has enough tokens in balance before transferring or redeeming them\r\n        require(balanceOf(sender) >= tokens, \"Insufficient balance for transfer\");\r\n        //check if tokens are being transferred to this cash contract\r\n        if(receiver == address(this)){\r\n            //if token name is the same, this transfer has to be redeemed\r\n            if(redeem(tokens, sender, \"redeem\", address(this)))\r\n                return true;\r\n            else\r\n                return false;\r\n        }\r\n        //else request issue of cash tokens requested from receiver\r\n        else if(_factory.getType(receiver)==\"ViaCash\"){ \r\n            require(!_lock[\"transfer\"], \"Lock on transfer\");\r\n            _lock[\"transfer\"] = true;\r\n            //only issue if cash tokens are paid in, since bond tokens can't be paid to issue bond token\r\n            Cash(address(uint160(receiver))).requestIssue(tokens, sender, _cashtokenName);\r\n            _lock[\"transfer\"] = false; \r\n            return true;                \r\n        }\r\n        //else if cash tokens are paid into bond issuers, then request for issue of bonds\r\n        else if(_factory.getType(receiver)==\"ViaBond\"){\r\n            if(ViaBond(address(uint160(receiver))).requestIssue(tokens, sender, _cashtokenName, address(this)))\r\n                return true;\r\n            else\r\n                return false;\r\n        }\r\n        //else check if cash tokens are paid into any specific bond token for purchase\r\n        else if(_factory.getType(receiver)==\"ViaBondToken\"){\r\n            if(ViaToken(address(uint160(receiver))).requestTransaction(tokens, sender, _cashtokenName, address(this)))\r\n                return true;\r\n            else\r\n                return false;\r\n        }\r\n        else{\r\n            //else, tokens are being sent to another user's account\r\n            //sending contract should be allowed by token owner to make this transfer\r\n            if(redeem(tokens, sender, \"transfer\", receiver))\r\n                return true;\r\n            else\r\n                return false;\r\n        } \r\n    }\r\n\r\n    //amount is issued, value is deposits against issues    \r\n    function payFee(address payer, uint256 amount, uint256 value, bytes32 currency, bytes32 action) private returns (uint256, uint256){\r\n        uint256 fees;\r\n        if(action==\"transfer\")\r\n            fees = _rates.getFee(\"remittance\");\r\n        else if(action==\"withdrawl\")\r\n            fees = _rates.getFee(\"withdrawl\");\r\n        if(fees > 0){\r\n            address feeTo = _rates.getCustodian();\r\n            if(feeTo!=address(0x0)){\r\n                _transfer(payer, feeTo, FixedPoint.mulDown(fees, amount));\r\n                _deposits[feeTo][currency].issuedAmount = Math.sub(_deposits[feeTo][currency].issuedAmount, FixedPoint.mulDown(fees, amount));\r\n                _deposits[feeTo][currency].depositAmount = Math.sub(_deposits[feeTo][currency].depositAmount, FixedPoint.mulDown(fees, value));\r\n                amount = Math.sub(amount, FixedPoint.mulDown(fees, amount));\r\n                value = Math.sub(value, FixedPoint.mulDown(fees, value));                 \r\n            }\r\n        }\r\n        return (amount, value);\r\n    }\r\n\r\n    //check AML status for account address\r\n    function amlCheck(address account) private view returns(bool){\r\n        address client = _factory.getClient();\r\n        if(client==address(0x0))\r\n            return true;\r\n        if(VerifiedClient(client).getAMLStatus(account))\r\n            return true;\r\n        else\r\n            return false;\r\n    }\r\n\r\n    function pause() onlyFactoryOwner(msg.sender) public {\r\n        _pause();\r\n    }\r\n    \r\n    function unpause() onlyFactoryOwner(msg.sender) public {\r\n        _unpause();\r\n    }\r\n\r\n    modifier onlyFactoryOwner (address sender){\r\n        require(sender == owner() || sender == address(_factory));\r\n        _;\r\n    }\r\n\r\n    function _computeScalingFactor(IERC20 token) internal view returns (uint256) {\r\n\r\n        // Tokens that don't implement the `decimals` method are not supported.\r\n        uint256 tokenDecimals = ERC20(address(token)).decimals();\r\n\r\n        // Tokens with more than 18 decimals are not supported.\r\n        uint256 decimalsDifference = Math.sub(18, tokenDecimals);\r\n        return 1e18 * 10**decimalsDifference;\r\n    }\r\n\r\n    function _upscale(uint256 amount, uint256 scalingFactor) internal pure returns (uint256) {        \r\n        return FixedPoint.mulDown(amount, scalingFactor);\r\n    }\r\n\r\n    function _downscaleDown(uint256 amount, uint256 scalingFactor) internal pure returns (uint256) {\r\n        return FixedPoint.divDown(amount, scalingFactor);\r\n    }\r\n\r\n    function _downscaleUp(uint256 amount, uint256 scalingFactor) internal pure returns (uint256) {\r\n        return FixedPoint.divUp(amount, scalingFactor);\r\n    }\r\n\r\n}",
    "sourcePath": "D:\\Code\\verified-payments\\contracts\\Cash.sol",
    "ast": {
        "absolutePath": "project:/contracts/Cash.sol",
        "exportedSymbols": {
            "Cash": [
                5750
            ]
        },
        "id": 5751,
        "nodeType": "SourceUnit",
        "nodes": [
            {
                "id": 3599,
                "literals": [
                    "solidity",
                    "0.5",
                    ".7"
                ],
                "nodeType": "PragmaDirective",
                "src": "110:22:15"
            },
            {
                "absolutePath": "project:/contracts/interfaces/ViaCash.sol",
                "file": "./interfaces/ViaCash.sol",
                "id": 3600,
                "nodeType": "ImportDirective",
                "scope": 5751,
                "sourceUnit": 8213,
                "src": "136:34:15",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/ViaBond.sol",
                "file": "./interfaces/ViaBond.sol",
                "id": 3601,
                "nodeType": "ImportDirective",
                "scope": 5751,
                "sourceUnit": 8170,
                "src": "172:34:15",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/ViaToken.sol",
                "file": "./interfaces/ViaToken.sol",
                "id": 3602,
                "nodeType": "ImportDirective",
                "scope": 5751,
                "sourceUnit": 8500,
                "src": "208:35:15",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/ViaOracle.sol",
                "file": "./interfaces/ViaOracle.sol",
                "id": 3603,
                "nodeType": "ImportDirective",
                "scope": 5751,
                "sourceUnit": 8428,
                "src": "245:36:15",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/ViaFactory.sol",
                "file": "./interfaces/ViaFactory.sol",
                "id": 3604,
                "nodeType": "ImportDirective",
                "scope": 5751,
                "sourceUnit": 8403,
                "src": "283:37:15",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/VerifiedClient.sol",
                "file": "./interfaces/VerifiedClient.sol",
                "id": 3605,
                "nodeType": "ImportDirective",
                "scope": 5751,
                "sourceUnit": 8023,
                "src": "322:41:15",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/VerifiedRates.sol",
                "file": "./interfaces/VerifiedRates.sol",
                "id": 3606,
                "nodeType": "ImportDirective",
                "scope": 5751,
                "sourceUnit": 8062,
                "src": "365:40:15",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/math/Math.sol",
                "file": "./math/Math.sol",
                "id": 3607,
                "nodeType": "ImportDirective",
                "scope": 5751,
                "sourceUnit": 10484,
                "src": "409:25:15",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/math/FixedPoint.sol",
                "file": "./math/FixedPoint.sol",
                "id": 3608,
                "nodeType": "ImportDirective",
                "scope": 5751,
                "sourceUnit": 8910,
                "src": "436:31:15",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/utilities/Pausable.sol",
                "file": "./utilities/Pausable.sol",
                "id": 3609,
                "nodeType": "ImportDirective",
                "scope": 5751,
                "sourceUnit": 12578,
                "src": "471:34:15",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/utilities/StringUtils.sol",
                "file": "./utilities/StringUtils.sol",
                "id": 3610,
                "nodeType": "ImportDirective",
                "scope": 5751,
                "sourceUnit": 12993,
                "src": "507:37:15",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/utilities/ERC20.sol",
                "file": "./utilities/ERC20.sol",
                "id": 3611,
                "nodeType": "ImportDirective",
                "scope": 5751,
                "sourceUnit": 12539,
                "src": "546:31:15",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@openzeppelin/upgrades/contracts/Initializable.sol",
                "file": "@openzeppelin/upgrades/contracts/Initializable.sol",
                "id": 3612,
                "nodeType": "ImportDirective",
                "scope": 5751,
                "sourceUnit": 479,
                "src": "581:60:15",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol",
                "file": "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol",
                "id": 3613,
                "nodeType": "ImportDirective",
                "scope": 5751,
                "sourceUnit": 341,
                "src": "643:82:15",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "baseContracts": [
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 3614,
                            "name": "ViaCash",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 8212,
                            "src": "746:7:15",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ViaCash_$8212",
                                "typeString": "contract ViaCash"
                            }
                        },
                        "id": 3615,
                        "nodeType": "InheritanceSpecifier",
                        "src": "746:7:15"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 3616,
                            "name": "Initializable",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 478,
                            "src": "755:13:15",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Initializable_$478",
                                "typeString": "contract Initializable"
                            }
                        },
                        "id": 3617,
                        "nodeType": "InheritanceSpecifier",
                        "src": "755:13:15"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 3618,
                            "name": "ERC20",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 12538,
                            "src": "770:5:15",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ERC20_$12538",
                                "typeString": "contract ERC20"
                            }
                        },
                        "id": 3619,
                        "nodeType": "InheritanceSpecifier",
                        "src": "770:5:15"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 3620,
                            "name": "Ownable",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 340,
                            "src": "777:7:15",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Ownable_$340",
                                "typeString": "contract Ownable"
                            }
                        },
                        "id": 3621,
                        "nodeType": "InheritanceSpecifier",
                        "src": "777:7:15"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 3622,
                            "name": "Pausable",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 12577,
                            "src": "786:8:15",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Pausable_$12577",
                                "typeString": "contract Pausable"
                            }
                        },
                        "id": 3623,
                        "nodeType": "InheritanceSpecifier",
                        "src": "786:8:15"
                    }
                ],
                "contractDependencies": [
                    29,
                    340,
                    409,
                    478,
                    8212,
                    12538,
                    12577
                ],
                "contractKind": "contract",
                "documentation": null,
                "fullyImplemented": true,
                "id": 5750,
                "linearizedBaseContracts": [
                    5750,
                    12577,
                    340,
                    12538,
                    409,
                    29,
                    478,
                    8212
                ],
                "name": "Cash",
                "nodeType": "ContractDefinition",
                "nodes": [
                    {
                        "id": 3625,
                        "libraryName": {
                            "contractScope": null,
                            "id": 3624,
                            "name": "stringutils",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 12992,
                            "src": "810:11:15",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_stringutils_$12992",
                                "typeString": "library stringutils"
                            }
                        },
                        "nodeType": "UsingForDirective",
                        "src": "804:24:15",
                        "typeName": null
                    },
                    {
                        "id": 3628,
                        "libraryName": {
                            "contractScope": null,
                            "id": 3626,
                            "name": "Math",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 10483,
                            "src": "840:4:15",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Math_$10483",
                                "typeString": "library Math"
                            }
                        },
                        "nodeType": "UsingForDirective",
                        "src": "834:23:15",
                        "typeName": {
                            "id": 3627,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "849:7:15",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        }
                    },
                    {
                        "id": 3631,
                        "libraryName": {
                            "contractScope": null,
                            "id": 3629,
                            "name": "FixedPoint",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 8909,
                            "src": "869:10:15",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FixedPoint_$8909",
                                "typeString": "library FixedPoint"
                            }
                        },
                        "nodeType": "UsingForDirective",
                        "src": "863:29:15",
                        "typeName": {
                            "id": 3630,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "884:7:15",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        }
                    },
                    {
                        "constant": false,
                        "id": 3633,
                        "name": "_factory",
                        "nodeType": "VariableDeclaration",
                        "scope": 5750,
                        "src": "927:27:15",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ViaFactory_$8402",
                            "typeString": "contract ViaFactory"
                        },
                        "typeName": {
                            "contractScope": null,
                            "id": 3632,
                            "name": "ViaFactory",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 8402,
                            "src": "927:10:15",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                "typeString": "contract ViaFactory"
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 3635,
                        "name": "_rates",
                        "nodeType": "VariableDeclaration",
                        "scope": 5750,
                        "src": "963:28:15",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_contract$_VerifiedRates_$8061",
                            "typeString": "contract VerifiedRates"
                        },
                        "typeName": {
                            "contractScope": null,
                            "id": 3634,
                            "name": "VerifiedRates",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 8061,
                            "src": "963:13:15",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_VerifiedRates_$8061",
                                "typeString": "contract VerifiedRates"
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 3637,
                        "name": "_oracle",
                        "nodeType": "VariableDeclaration",
                        "scope": 5750,
                        "src": "1018:25:15",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ViaOracle_$8427",
                            "typeString": "contract ViaOracle"
                        },
                        "typeName": {
                            "contractScope": null,
                            "id": 3636,
                            "name": "ViaOracle",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 8427,
                            "src": "1018:9:15",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ViaOracle_$8427",
                                "typeString": "contract ViaOracle"
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 3639,
                        "name": "_cashtokenName",
                        "nodeType": "VariableDeclaration",
                        "scope": 5750,
                        "src": "1096:29:15",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                        },
                        "typeName": {
                            "id": 3638,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1096:7:15",
                            "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                            }
                        },
                        "value": null,
                        "visibility": "public"
                    },
                    {
                        "canonicalName": "Cash.deposit",
                        "id": 3646,
                        "members": [
                            {
                                "constant": false,
                                "id": 3641,
                                "name": "depositAmount",
                                "nodeType": "VariableDeclaration",
                                "scope": 3646,
                                "src": "1159:21:15",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                },
                                "typeName": {
                                    "id": 3640,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1159:7:15",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    }
                                },
                                "value": null,
                                "visibility": "internal"
                            },
                            {
                                "constant": false,
                                "id": 3643,
                                "name": "issuedAmount",
                                "nodeType": "VariableDeclaration",
                                "scope": 3646,
                                "src": "1191:20:15",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                },
                                "typeName": {
                                    "id": 3642,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1191:7:15",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    }
                                },
                                "value": null,
                                "visibility": "internal"
                            },
                            {
                                "constant": false,
                                "id": 3645,
                                "name": "depositor",
                                "nodeType": "VariableDeclaration",
                                "scope": 3646,
                                "src": "1222:17:15",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                },
                                "typeName": {
                                    "id": 3644,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1222:7:15",
                                    "stateMutability": "nonpayable",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    }
                                },
                                "value": null,
                                "visibility": "internal"
                            }
                        ],
                        "name": "deposit",
                        "nodeType": "StructDefinition",
                        "scope": 5750,
                        "src": "1134:113:15",
                        "visibility": "public"
                    },
                    {
                        "constant": false,
                        "id": 3649,
                        "name": "currencies",
                        "nodeType": "VariableDeclaration",
                        "scope": 5750,
                        "src": "1255:28:15",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                            "typeString": "bytes32[]"
                        },
                        "typeName": {
                            "baseType": {
                                "id": 3647,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "1255:7:15",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "id": 3648,
                            "length": null,
                            "nodeType": "ArrayTypeName",
                            "src": "1255:9:15",
                            "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 3653,
                        "name": "currencyIndex",
                        "nodeType": "VariableDeclaration",
                        "scope": 5750,
                        "src": "1292:49:15",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                            "typeString": "mapping(bytes32 => uint256)"
                        },
                        "typeName": {
                            "id": 3652,
                            "keyType": {
                                "id": 3650,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "1300:7:15",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1292:27:15",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                            },
                            "valueType": {
                                "id": 3651,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "1311:7:15",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                }
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 3659,
                        "name": "_deposits",
                        "nodeType": "VariableDeclaration",
                        "scope": 5750,
                        "src": "1428:64:15",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit))"
                        },
                        "typeName": {
                            "id": 3658,
                            "keyType": {
                                "id": 3654,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1436:7:15",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1428:47:15",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit))"
                            },
                            "valueType": {
                                "id": 3657,
                                "keyType": {
                                    "id": 3655,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1455:7:15",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    }
                                },
                                "nodeType": "Mapping",
                                "src": "1447:27:15",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                    "typeString": "mapping(bytes32 => struct Cash.deposit)"
                                },
                                "valueType": {
                                    "contractScope": null,
                                    "id": 3656,
                                    "name": "deposit",
                                    "nodeType": "UserDefinedTypeName",
                                    "referencedDeclaration": 3646,
                                    "src": "1466:7:15",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_deposit_$3646_storage_ptr",
                                        "typeString": "struct Cash.deposit"
                                    }
                                }
                            }
                        },
                        "value": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 3664,
                            "nodeType": "Block",
                            "src": "1539:198:15",
                            "statements": [
                                {
                                    "id": 3663,
                                    "nodeType": "PlaceholderStatement",
                                    "src": "1728:1:15"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 3665,
                        "name": "onlyCustodian",
                        "nodeType": "ModifierDefinition",
                        "parameters": {
                            "id": 3662,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3661,
                                    "name": "sender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3665,
                                    "src": "1524:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3660,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1524:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1523:16:15"
                        },
                        "src": "1501:236:15",
                        "visibility": "internal"
                    },
                    {
                        "anonymous": false,
                        "documentation": null,
                        "id": 3675,
                        "name": "CashIssued",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 3674,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3667,
                                    "indexed": true,
                                    "name": "party",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3675,
                                    "src": "1812:21:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3666,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1812:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3669,
                                    "indexed": false,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3675,
                                    "src": "1835:16:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 3668,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1835:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3671,
                                    "indexed": false,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3675,
                                    "src": "1853:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3670,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1853:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3673,
                                    "indexed": false,
                                    "name": "balance",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3675,
                                    "src": "1869:15:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3672,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1869:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1811:74:15"
                        },
                        "src": "1795:91:15"
                    },
                    {
                        "anonymous": false,
                        "documentation": null,
                        "id": 3687,
                        "name": "CashRedeemed",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 3686,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3677,
                                    "indexed": true,
                                    "name": "party",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3687,
                                    "src": "1911:21:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3676,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1911:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3679,
                                    "indexed": false,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3687,
                                    "src": "1934:16:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 3678,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1934:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3681,
                                    "indexed": false,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3687,
                                    "src": "1952:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3680,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1952:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3683,
                                    "indexed": false,
                                    "name": "redeemedFor",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3687,
                                    "src": "1968:19:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3682,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1968:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3685,
                                    "indexed": false,
                                    "name": "balance",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3687,
                                    "src": "1989:15:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3684,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1989:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1910:95:15"
                        },
                        "src": "1892:114:15"
                    },
                    {
                        "anonymous": false,
                        "documentation": null,
                        "id": 3695,
                        "name": "CashDeposits",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 3694,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3689,
                                    "indexed": true,
                                    "name": "party",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3695,
                                    "src": "2031:21:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3688,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2031:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3691,
                                    "indexed": false,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3695,
                                    "src": "2054:16:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 3690,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2054:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3693,
                                    "indexed": false,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3695,
                                    "src": "2072:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3692,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2072:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2030:57:15"
                        },
                        "src": "2012:76:15"
                    },
                    {
                        "anonymous": false,
                        "documentation": null,
                        "id": 3707,
                        "name": "CashTransfer",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 3706,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3697,
                                    "indexed": true,
                                    "name": "party",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3707,
                                    "src": "2113:21:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3696,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2113:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3699,
                                    "indexed": true,
                                    "name": "counterparty",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3707,
                                    "src": "2136:28:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3698,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2136:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3701,
                                    "indexed": false,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3707,
                                    "src": "2166:16:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 3700,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2166:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3703,
                                    "indexed": false,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3707,
                                    "src": "2184:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3702,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2184:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3705,
                                    "indexed": false,
                                    "name": "deposit",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3707,
                                    "src": "2200:15:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3704,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2200:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2112:104:15"
                        },
                        "src": "2094:123:15"
                    },
                    {
                        "constant": false,
                        "id": 3711,
                        "name": "_lock",
                        "nodeType": "VariableDeclaration",
                        "scope": 5750,
                        "src": "2238:38:15",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                            "typeString": "mapping(bytes32 => bool)"
                        },
                        "typeName": {
                            "id": 3710,
                            "keyType": {
                                "id": 3708,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "2246:7:15",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "2238:24:15",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                "typeString": "mapping(bytes32 => bool)"
                            },
                            "valueType": {
                                "id": 3709,
                                "name": "bool",
                                "nodeType": "ElementaryTypeName",
                                "src": "2257:4:15",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                }
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 3774,
                            "nodeType": "Block",
                            "src": "2440:299:15",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 3731,
                                                "name": "owner",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3717,
                                                "src": "2470:5:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 3728,
                                                "name": "Ownable",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 340,
                                                "src": "2451:7:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_Ownable_$340_$",
                                                    "typeString": "type(contract Ownable)"
                                                }
                                            },
                                            "id": 3730,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "initialize",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 251,
                                            "src": "2451:18:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                                                "typeString": "function (address)"
                                            }
                                        },
                                        "id": 3732,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2451:25:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 3733,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2451:25:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 3739,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 3734,
                                            "name": "_factory",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3633,
                                            "src": "2495:8:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                "typeString": "contract ViaFactory"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 3736,
                                                        "name": "msg",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 13007,
                                                        "src": "2517:3:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_magic_message",
                                                            "typeString": "msg"
                                                        }
                                                    },
                                                    "id": 3737,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "sender",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "2517:10:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                ],
                                                "id": 3735,
                                                "name": "ViaFactory",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8402,
                                                "src": "2506:10:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_ViaFactory_$8402_$",
                                                    "typeString": "type(contract ViaFactory)"
                                                }
                                            },
                                            "id": 3738,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "2506:22:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                "typeString": "contract ViaFactory"
                                            }
                                        },
                                        "src": "2495:33:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                            "typeString": "contract ViaFactory"
                                        }
                                    },
                                    "id": 3740,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2495:33:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 3745,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 3741,
                                            "name": "_oracle",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3637,
                                            "src": "2539:7:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_ViaOracle_$8427",
                                                "typeString": "contract ViaOracle"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 3743,
                                                    "name": "oracle",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3719,
                                                    "src": "2559:6:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "id": 3742,
                                                "name": "ViaOracle",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8427,
                                                "src": "2549:9:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_ViaOracle_$8427_$",
                                                    "typeString": "type(contract ViaOracle)"
                                                }
                                            },
                                            "id": 3744,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "2549:17:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_ViaOracle_$8427",
                                                "typeString": "contract ViaOracle"
                                            }
                                        },
                                        "src": "2539:27:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_ViaOracle_$8427",
                                            "typeString": "contract ViaOracle"
                                        }
                                    },
                                    "id": 3746,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2539:27:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 3751,
                                                                "name": "name",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3713,
                                                                "src": "2609:4:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 3749,
                                                                "name": "abi",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 12994,
                                                                "src": "2592:3:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_magic_abi",
                                                                    "typeString": "abi"
                                                                }
                                                            },
                                                            "id": 3750,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "memberName": "encodePacked",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": null,
                                                            "src": "2592:16:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                                                "typeString": "function () pure returns (bytes memory)"
                                                            }
                                                        },
                                                        "id": 3752,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "2592:22:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                            "typeString": "bytes memory"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                            "typeString": "bytes memory"
                                                        }
                                                    ],
                                                    "id": 3748,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "2585:6:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                                                        "typeString": "type(string storage pointer)"
                                                    },
                                                    "typeName": "string"
                                                },
                                                "id": 3753,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "2585:30:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            ],
                                            "id": 3747,
                                            "name": "setName",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 12127,
                                            "src": "2577:7:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (string memory)"
                                            }
                                        },
                                        "id": 3754,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2577:39:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 3755,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2577:39:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "hexValue": "30",
                                                        "id": 3759,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "2652:1:15",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        },
                                                        "value": "0"
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "hexValue": "35",
                                                        "id": 3760,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "2654:1:15",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_5_by_1",
                                                            "typeString": "int_const 5"
                                                        },
                                                        "value": "5"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_rational_5_by_1",
                                                            "typeString": "int_const 5"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 3757,
                                                        "name": "name",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3713,
                                                        "src": "2637:4:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "id": 3758,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "substring",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 12724,
                                                    "src": "2637:14:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_delegatecall_pure$_t_bytes32_$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_bytes32_$",
                                                        "typeString": "function (bytes32,uint256,uint256) pure returns (string memory)"
                                                    }
                                                },
                                                "id": 3761,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "2637:19:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            ],
                                            "id": 3756,
                                            "name": "setSymbol",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 12145,
                                            "src": "2627:9:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (string memory)"
                                            }
                                        },
                                        "id": 3762,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2627:30:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 3763,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2627:30:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 3766,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 3764,
                                            "name": "_cashtokenName",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3639,
                                            "src": "2668:14:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 3765,
                                            "name": "currency",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3715,
                                            "src": "2685:8:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "src": "2668:25:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "id": 3767,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2668:25:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 3772,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 3768,
                                            "name": "_rates",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3635,
                                            "src": "2704:6:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_VerifiedRates_$8061",
                                                "typeString": "contract VerifiedRates"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 3770,
                                                    "name": "fee",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3723,
                                                    "src": "2727:3:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "id": 3769,
                                                "name": "VerifiedRates",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8061,
                                                "src": "2713:13:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_VerifiedRates_$8061_$",
                                                    "typeString": "type(contract VerifiedRates)"
                                                }
                                            },
                                            "id": 3771,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "2713:18:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_VerifiedRates_$8061",
                                                "typeString": "contract VerifiedRates"
                                            }
                                        },
                                        "src": "2704:27:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_VerifiedRates_$8061",
                                            "typeString": "contract VerifiedRates"
                                        }
                                    },
                                    "id": 3773,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2704:27:15"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 3775,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": null,
                                "id": 3726,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 3725,
                                    "name": "initializer",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 453,
                                    "src": "2429:11:15",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "2429:11:15"
                            }
                        ],
                        "name": "initialize",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 3724,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3713,
                                    "name": "name",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3775,
                                    "src": "2331:12:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 3712,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2331:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3715,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3775,
                                    "src": "2345:16:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 3714,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2345:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3717,
                                    "name": "owner",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3775,
                                    "src": "2363:13:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3716,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2363:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3719,
                                    "name": "oracle",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3775,
                                    "src": "2378:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3718,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2378:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3721,
                                    "name": "token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3775,
                                    "src": "2394:13:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3720,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2394:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3723,
                                    "name": "fee",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3775,
                                    "src": "2409:11:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3722,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2409:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2330:91:15"
                        },
                        "returnParameters": {
                            "id": 3727,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "2440:0:15"
                        },
                        "scope": 5750,
                        "src": "2311:428:15",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 3836,
                            "nodeType": "Block",
                            "src": "2836:581:15",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 3782,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 3779,
                                                        "name": "msg",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 13007,
                                                        "src": "2880:3:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_magic_message",
                                                            "typeString": "msg"
                                                        }
                                                    },
                                                    "id": 3780,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "value",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "2880:9:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "!=",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "30",
                                                    "id": 3781,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "2892:1:15",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0"
                                                },
                                                "src": "2880:13:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 3778,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "2872:7:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 3783,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2872:22:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 3784,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2872:22:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 3790,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 3786,
                                                            "name": "msg",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 13007,
                                                            "src": "2945:3:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_magic_message",
                                                                "typeString": "msg"
                                                            }
                                                        },
                                                        "id": 3787,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "data",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "2945:8:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes_calldata_ptr",
                                                            "typeString": "bytes calldata"
                                                        }
                                                    },
                                                    "id": 3788,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "length",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "2945:15:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "30",
                                                    "id": 3789,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "2962:1:15",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0"
                                                },
                                                "src": "2945:18:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 3785,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "2937:7:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 3791,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2937:27:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 3792,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2937:27:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 3796,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 3794,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 12542,
                                                    "src": "3022:6:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 3795,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "3032:5:15",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "3022:15:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 3793,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "3014:7:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 3797,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3014:24:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 3798,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3014:24:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 3805,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 3801,
                                                                "name": "msg",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 13007,
                                                                "src": "3094:3:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_magic_message",
                                                                    "typeString": "msg"
                                                                }
                                                            },
                                                            "id": 3802,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "sender",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": null,
                                                            "src": "3094:10:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        ],
                                                        "id": 3800,
                                                        "name": "amlCheck",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5628,
                                                        "src": "3085:8:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
                                                            "typeString": "function (address) view returns (bool)"
                                                        }
                                                    },
                                                    "id": 3803,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "3085:20:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "74727565",
                                                    "id": 3804,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "3107:4:15",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "true"
                                                },
                                                "src": "3085:26:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 3799,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "3077:7:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 3806,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3077:35:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 3807,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3077:35:15"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 3812,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 3808,
                                                "name": "currencyIndex",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3653,
                                                "src": "3181:13:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                    "typeString": "mapping(bytes32 => uint256)"
                                                }
                                            },
                                            "id": 3810,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "6574686572",
                                                "id": 3809,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "3195:7:15",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_13730b0d8e1bdbdc293b62ba010b1eede56b412ea2980defabe3d0b6c7844c3a",
                                                    "typeString": "literal_string \"ether\""
                                                },
                                                "value": "ether"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "3181:22:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 3811,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "3205:1:15",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "src": "3181:25:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": null,
                                    "id": 3827,
                                    "nodeType": "IfStatement",
                                    "src": "3178:137:15",
                                    "trueBody": {
                                        "id": 3826,
                                        "nodeType": "Block",
                                        "src": "3207:108:15",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "hexValue": "6574686572",
                                                            "id": 3816,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "string",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "3238:7:15",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_stringliteral_13730b0d8e1bdbdc293b62ba010b1eede56b412ea2980defabe3d0b6c7844c3a",
                                                                "typeString": "literal_string \"ether\""
                                                            },
                                                            "value": "ether"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_stringliteral_13730b0d8e1bdbdc293b62ba010b1eede56b412ea2980defabe3d0b6c7844c3a",
                                                                "typeString": "literal_string \"ether\""
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 3813,
                                                            "name": "currencies",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3649,
                                                            "src": "3222:10:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                "typeString": "bytes32[] storage ref"
                                                            }
                                                        },
                                                        "id": 3815,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "push",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "3222:15:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$",
                                                            "typeString": "function (bytes32) returns (uint256)"
                                                        }
                                                    },
                                                    "id": 3817,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "3222:24:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 3818,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3222:24:15"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 3824,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3819,
                                                            "name": "currencyIndex",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3653,
                                                            "src": "3261:13:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                                "typeString": "mapping(bytes32 => uint256)"
                                                            }
                                                        },
                                                        "id": 3821,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "hexValue": "6574686572",
                                                            "id": 3820,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "string",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "3275:7:15",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_stringliteral_13730b0d8e1bdbdc293b62ba010b1eede56b412ea2980defabe3d0b6c7844c3a",
                                                                "typeString": "literal_string \"ether\""
                                                            },
                                                            "value": "ether"
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "3261:22:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 3822,
                                                            "name": "currencies",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3649,
                                                            "src": "3286:10:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                "typeString": "bytes32[] storage ref"
                                                            }
                                                        },
                                                        "id": 3823,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "length",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "3286:17:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "3261:42:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 3825,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3261:42:15"
                                            }
                                        ]
                                    }
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 3829,
                                                    "name": "msg",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 13007,
                                                    "src": "3370:3:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_message",
                                                        "typeString": "msg"
                                                    }
                                                },
                                                "id": 3830,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "value",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": null,
                                                "src": "3370:9:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 3831,
                                                    "name": "msg",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 13007,
                                                    "src": "3381:3:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_message",
                                                        "typeString": "msg"
                                                    }
                                                },
                                                "id": 3832,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sender",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": null,
                                                "src": "3381:10:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "6574686572",
                                                "id": 3833,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "3393:7:15",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_13730b0d8e1bdbdc293b62ba010b1eede56b412ea2980defabe3d0b6c7844c3a",
                                                    "typeString": "literal_string \"ether\""
                                                },
                                                "value": "ether"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_13730b0d8e1bdbdc293b62ba010b1eede56b412ea2980defabe3d0b6c7844c3a",
                                                    "typeString": "literal_string \"ether\""
                                                }
                                            ],
                                            "id": 3828,
                                            "name": "makeDeposit",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4094,
                                            "src": "3358:11:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$__$",
                                                "typeString": "function (uint256,address,bytes32)"
                                            }
                                        },
                                        "id": 3834,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3358:43:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 3835,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3358:43:15"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 3837,
                        "implemented": true,
                        "kind": "fallback",
                        "modifiers": [],
                        "name": "",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 3776,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "2816:2:15"
                        },
                        "returnParameters": {
                            "id": 3777,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "2836:0:15"
                        },
                        "scope": 5750,
                        "src": "2808:609:15",
                        "stateMutability": "payable",
                        "superFunction": null,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 3979,
                            "nodeType": "Block",
                            "src": "3542:1344:15",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 3860,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "id": 3853,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 3849,
                                                                    "name": "msg",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 13007,
                                                                    "src": "3578:3:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_magic_message",
                                                                        "typeString": "msg"
                                                                    }
                                                                },
                                                                "id": 3850,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "sender",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": null,
                                                                "src": "3578:10:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 3847,
                                                                "name": "_factory",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3633,
                                                                "src": "3561:8:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                    "typeString": "contract ViaFactory"
                                                                }
                                                            },
                                                            "id": 3848,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "getType",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8240,
                                                            "src": "3561:16:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$",
                                                                "typeString": "function (address) view external returns (bytes32)"
                                                            }
                                                        },
                                                        "id": 3851,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "3561:28:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "56696143617368",
                                                        "id": 3852,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "3593:9:15",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                            "typeString": "literal_string \"ViaCash\""
                                                        },
                                                        "value": "ViaCash"
                                                    },
                                                    "src": "3561:41:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "||",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "id": 3859,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 3856,
                                                                "name": "currency",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3843,
                                                                "src": "3636:8:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 3854,
                                                                "name": "_factory",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3633,
                                                                "src": "3606:8:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                    "typeString": "contract ViaFactory"
                                                                }
                                                            },
                                                            "id": 3855,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "checkSupportForToken",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8394,
                                                            "src": "3606:29:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                                                                "typeString": "function (bytes32) view external returns (bool)"
                                                            }
                                                        },
                                                        "id": 3857,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "3606:39:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "74727565",
                                                        "id": 3858,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "bool",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "3647:4:15",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        },
                                                        "value": "true"
                                                    },
                                                    "src": "3606:45:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "src": "3561:90:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 3846,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "3553:7:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 3861,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3553:99:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 3862,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3553:99:15"
                                },
                                {
                                    "assignments": [
                                        3864
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 3864,
                                            "name": "status",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 3979,
                                            "src": "3663:11:15",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "typeName": {
                                                "id": 3863,
                                                "name": "bool",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "3663:4:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 3866,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "hexValue": "74727565",
                                        "id": 3865,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3677:4:15",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "value": "true"
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "3663:18:15"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "id": 3872,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 3869,
                                                    "name": "currency",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3843,
                                                    "src": "3725:8:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 3867,
                                                    "name": "_factory",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3633,
                                                    "src": "3695:8:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                        "typeString": "contract ViaFactory"
                                                    }
                                                },
                                                "id": 3868,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "checkSupportForToken",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 8394,
                                                "src": "3695:29:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                                                    "typeString": "function (bytes32) view external returns (bool)"
                                                }
                                            },
                                            "id": 3870,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "3695:39:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "74727565",
                                            "id": 3871,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "3736:4:15",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "value": "true"
                                        },
                                        "src": "3695:45:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "id": 3948,
                                        "nodeType": "Block",
                                        "src": "4179:400:15",
                                        "statements": [
                                            {
                                                "assignments": [
                                                    3914
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 3914,
                                                        "name": "cashToken",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 3948,
                                                        "src": "4194:17:15",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "typeName": {
                                                            "id": 3913,
                                                            "name": "address",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "4194:7:15",
                                                            "stateMutability": "nonpayable",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 3920,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 3917,
                                                            "name": "currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3843,
                                                            "src": "4242:8:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "hexValue": "56696143617368",
                                                            "id": 3918,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "string",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "4251:9:15",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                "typeString": "literal_string \"ViaCash\""
                                                            },
                                                            "value": "ViaCash"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                "typeString": "literal_string \"ViaCash\""
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 3915,
                                                            "name": "_factory",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3633,
                                                            "src": "4214:8:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                "typeString": "contract ViaFactory"
                                                            }
                                                        },
                                                        "id": 3916,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "getTokenByNameType",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 8276,
                                                        "src": "4214:27:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                                                            "typeString": "function (bytes32,bytes32) view external returns (address)"
                                                        }
                                                    },
                                                    "id": 3919,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "4214:47:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "4194:67:15"
                                            },
                                            {
                                                "condition": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "id": 3925,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "id": 3921,
                                                        "name": "cashToken",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3914,
                                                        "src": "4374:9:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "!=",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 3923,
                                                                "name": "this",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 13077,
                                                                "src": "4393:4:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_Cash_$5750",
                                                                    "typeString": "contract Cash"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_Cash_$5750",
                                                                    "typeString": "contract Cash"
                                                                }
                                                            ],
                                                            "id": 3922,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "4385:7:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": "address"
                                                        },
                                                        "id": 3924,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "4385:13:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address_payable",
                                                            "typeString": "address payable"
                                                        }
                                                    },
                                                    "src": "4374:24:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": {
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 3945,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftHandSide": {
                                                            "argumentTypes": null,
                                                            "id": 3940,
                                                            "name": "status",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3864,
                                                            "src": "4531:6:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        },
                                                        "nodeType": "Assignment",
                                                        "operator": "=",
                                                        "rightHandSide": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 3942,
                                                                    "name": "amount",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3839,
                                                                    "src": "4553:6:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 3943,
                                                                    "name": "buyer",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3841,
                                                                    "src": "4561:5:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 3941,
                                                                "name": "addToBalance",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4284,
                                                                "src": "4540:12:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_bool_$",
                                                                    "typeString": "function (uint256,address) returns (bool)"
                                                                }
                                                            },
                                                            "id": 3944,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "4540:27:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        },
                                                        "src": "4531:36:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "id": 3946,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "4531:36:15"
                                                },
                                                "id": 3947,
                                                "nodeType": "IfStatement",
                                                "src": "4371:196:15",
                                                "trueBody": {
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 3938,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftHandSide": {
                                                            "argumentTypes": null,
                                                            "id": 3926,
                                                            "name": "status",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3864,
                                                            "src": "4417:6:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        },
                                                        "nodeType": "Assignment",
                                                        "operator": "=",
                                                        "rightHandSide": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 3935,
                                                                    "name": "amount",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3839,
                                                                    "src": "4480:6:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 3936,
                                                                    "name": "buyer",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3841,
                                                                    "src": "4488:5:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "arguments": [
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "arguments": [
                                                                                        {
                                                                                            "argumentTypes": null,
                                                                                            "id": 3930,
                                                                                            "name": "cashToken",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 3914,
                                                                                            "src": "4447:9:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            }
                                                                                        }
                                                                                    ],
                                                                                    "expression": {
                                                                                        "argumentTypes": [
                                                                                            {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            }
                                                                                        ],
                                                                                        "id": 3929,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": true,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "ElementaryTypeNameExpression",
                                                                                        "src": "4439:7:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_type$_t_uint160_$",
                                                                                            "typeString": "type(uint160)"
                                                                                        },
                                                                                        "typeName": "uint160"
                                                                                    },
                                                                                    "id": 3931,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "kind": "typeConversion",
                                                                                    "lValueRequested": false,
                                                                                    "names": [],
                                                                                    "nodeType": "FunctionCall",
                                                                                    "src": "4439:18:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint160",
                                                                                        "typeString": "uint160"
                                                                                    }
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": [
                                                                                    {
                                                                                        "typeIdentifier": "t_uint160",
                                                                                        "typeString": "uint160"
                                                                                    }
                                                                                ],
                                                                                "id": 3928,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "ElementaryTypeNameExpression",
                                                                                "src": "4431:7:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_type$_t_address_$",
                                                                                    "typeString": "type(address)"
                                                                                },
                                                                                "typeName": "address"
                                                                            },
                                                                            "id": 3932,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "kind": "typeConversion",
                                                                            "lValueRequested": false,
                                                                            "names": [],
                                                                            "nodeType": "FunctionCall",
                                                                            "src": "4431:27:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address_payable",
                                                                                "typeString": "address payable"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_address_payable",
                                                                                "typeString": "address payable"
                                                                            }
                                                                        ],
                                                                        "id": 3927,
                                                                        "name": "Cash",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5750,
                                                                        "src": "4426:4:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_Cash_$5750_$",
                                                                            "typeString": "type(contract Cash)"
                                                                        }
                                                                    },
                                                                    "id": 3933,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "typeConversion",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "4426:33:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_Cash_$5750",
                                                                        "typeString": "contract Cash"
                                                                    }
                                                                },
                                                                "id": 3934,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "requestAddToBalance",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 4255,
                                                                "src": "4426:53:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$returns$_t_bool_$",
                                                                    "typeString": "function (uint256,address) external returns (bool)"
                                                                }
                                                            },
                                                            "id": 3937,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "4426:68:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        },
                                                        "src": "4417:77:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "id": 3939,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "4417:77:15"
                                                }
                                            }
                                        ]
                                    },
                                    "id": 3949,
                                    "nodeType": "IfStatement",
                                    "src": "3692:887:15",
                                    "trueBody": {
                                        "id": 3912,
                                        "nodeType": "Block",
                                        "src": "3741:423:15",
                                        "statements": [
                                            {
                                                "assignments": [
                                                    3874
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 3874,
                                                        "name": "token",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 3912,
                                                        "src": "3856:13:15",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "typeName": {
                                                            "id": 3873,
                                                            "name": "address",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "3856:7:15",
                                                            "stateMutability": "nonpayable",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 3879,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 3877,
                                                            "name": "currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3843,
                                                            "src": "3898:8:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 3875,
                                                            "name": "_factory",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3633,
                                                            "src": "3872:8:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                "typeString": "contract ViaFactory"
                                                            }
                                                        },
                                                        "id": 3876,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "getCurrencyToken",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 8401,
                                                        "src": "3872:25:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                                            "typeString": "function (bytes32) view external returns (address)"
                                                        }
                                                    },
                                                    "id": 3878,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "3872:35:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "3856:51:15"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 3892,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 3880,
                                                        "name": "status",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3864,
                                                        "src": "3922:6:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 3885,
                                                                    "name": "msg",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 13007,
                                                                    "src": "3958:3:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_magic_message",
                                                                        "typeString": "msg"
                                                                    }
                                                                },
                                                                "id": 3886,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "sender",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": null,
                                                                "src": "3958:10:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 3888,
                                                                        "name": "this",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 13077,
                                                                        "src": "3978:4:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_contract$_Cash_$5750",
                                                                            "typeString": "contract Cash"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_Cash_$5750",
                                                                            "typeString": "contract Cash"
                                                                        }
                                                                    ],
                                                                    "id": 3887,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "ElementaryTypeNameExpression",
                                                                    "src": "3970:7:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_address_$",
                                                                        "typeString": "type(address)"
                                                                    },
                                                                    "typeName": "address"
                                                                },
                                                                "id": 3889,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "3970:13:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 3890,
                                                                "name": "amount",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3839,
                                                                "src": "3985:6:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 3882,
                                                                        "name": "token",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 3874,
                                                                        "src": "3938:5:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "id": 3881,
                                                                    "name": "IERC20",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 409,
                                                                    "src": "3931:6:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$409_$",
                                                                        "typeString": "type(contract IERC20)"
                                                                    }
                                                                },
                                                                "id": 3883,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "3931:13:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IERC20_$409",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            },
                                                            "id": 3884,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "transferFrom",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 392,
                                                            "src": "3931:26:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                                "typeString": "function (address,address,uint256) external returns (bool)"
                                                            }
                                                        },
                                                        "id": 3891,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "3931:61:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "src": "3922:70:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "id": 3893,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3922:70:15"
                                            },
                                            {
                                                "assignments": [
                                                    3895
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 3895,
                                                        "name": "scalingFactor",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 3912,
                                                        "src": "4007:21:15",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "typeName": {
                                                            "id": 3894,
                                                            "name": "uint256",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "4007:7:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 3904,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 3900,
                                                                            "name": "currency",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 3843,
                                                                            "src": "4086:8:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 3898,
                                                                            "name": "_factory",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 3633,
                                                                            "src": "4060:8:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                                "typeString": "contract ViaFactory"
                                                                            }
                                                                        },
                                                                        "id": 3899,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "getCurrencyToken",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 8401,
                                                                        "src": "4060:25:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                                                            "typeString": "function (bytes32) view external returns (address)"
                                                                        }
                                                                    },
                                                                    "id": 3901,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "4060:35:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 3897,
                                                                "name": "IERC20",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 409,
                                                                "src": "4053:6:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_IERC20_$409_$",
                                                                    "typeString": "type(contract IERC20)"
                                                                }
                                                            },
                                                            "id": 3902,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "4053:43:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_IERC20_$409",
                                                                "typeString": "contract IERC20"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_contract$_IERC20_$409",
                                                                "typeString": "contract IERC20"
                                                            }
                                                        ],
                                                        "id": 3896,
                                                        "name": "_computeScalingFactor",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5701,
                                                        "src": "4031:21:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$409_$returns$_t_uint256_$",
                                                            "typeString": "function (contract IERC20) view returns (uint256)"
                                                        }
                                                    },
                                                    "id": 3903,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "4031:66:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "4007:90:15"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 3910,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 3905,
                                                        "name": "amount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3839,
                                                        "src": "4112:6:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 3907,
                                                                "name": "amount",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3839,
                                                                "src": "4130:6:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 3908,
                                                                "name": "scalingFactor",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3895,
                                                                "src": "4138:13:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "id": 3906,
                                                            "name": "_upscale",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5717,
                                                            "src": "4121:8:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                            }
                                                        },
                                                        "id": 3909,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "4121:31:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "4112:40:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 3911,
                                                "nodeType": "ExpressionStatement",
                                                "src": "4112:40:15"
                                            }
                                        ]
                                    }
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "id": 3950,
                                        "name": "status",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3864,
                                        "src": "4592:6:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": null,
                                    "id": 3978,
                                    "nodeType": "IfStatement",
                                    "src": "4589:290:15",
                                    "trueBody": {
                                        "id": 3977,
                                        "nodeType": "Block",
                                        "src": "4599:280:15",
                                        "statements": [
                                            {
                                                "condition": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "id": 3955,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3951,
                                                            "name": "currencyIndex",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3653,
                                                            "src": "4668:13:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                                "typeString": "mapping(bytes32 => uint256)"
                                                            }
                                                        },
                                                        "id": 3953,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3952,
                                                            "name": "currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3843,
                                                            "src": "4682:8:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "4668:23:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "30",
                                                        "id": 3954,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "4693:1:15",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        },
                                                        "value": "0"
                                                    },
                                                    "src": "4668:26:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": null,
                                                "id": 3970,
                                                "nodeType": "IfStatement",
                                                "src": "4665:152:15",
                                                "trueBody": {
                                                    "id": 3969,
                                                    "nodeType": "Block",
                                                    "src": "4695:122:15",
                                                    "statements": [
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 3959,
                                                                        "name": "currency",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 3843,
                                                                        "src": "4730:8:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "id": 3956,
                                                                        "name": "currencies",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 3649,
                                                                        "src": "4714:10:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                            "typeString": "bytes32[] storage ref"
                                                                        }
                                                                    },
                                                                    "id": 3958,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "push",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": null,
                                                                    "src": "4714:15:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$",
                                                                        "typeString": "function (bytes32) returns (uint256)"
                                                                    }
                                                                },
                                                                "id": 3960,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "4714:25:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "id": 3961,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "4714:25:15"
                                                        },
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 3967,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftHandSide": {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 3962,
                                                                        "name": "currencyIndex",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 3653,
                                                                        "src": "4758:13:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                                            "typeString": "mapping(bytes32 => uint256)"
                                                                        }
                                                                    },
                                                                    "id": 3964,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 3963,
                                                                        "name": "currency",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 3843,
                                                                        "src": "4772:8:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": true,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "4758:23:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "nodeType": "Assignment",
                                                                "operator": "=",
                                                                "rightHandSide": {
                                                                    "argumentTypes": null,
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "id": 3965,
                                                                        "name": "currencies",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 3649,
                                                                        "src": "4784:10:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                            "typeString": "bytes32[] storage ref"
                                                                        }
                                                                    },
                                                                    "id": 3966,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "length",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": null,
                                                                    "src": "4784:17:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "src": "4758:43:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "id": 3968,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "4758:43:15"
                                                        }
                                                    ]
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 3972,
                                                            "name": "amount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3839,
                                                            "src": "4843:6:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 3973,
                                                            "name": "buyer",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3841,
                                                            "src": "4851:5:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 3974,
                                                            "name": "currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3843,
                                                            "src": "4858:8:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        ],
                                                        "id": 3971,
                                                        "name": "makeDeposit",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4094,
                                                        "src": "4831:11:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$__$",
                                                            "typeString": "function (uint256,address,bytes32)"
                                                        }
                                                    },
                                                    "id": 3975,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "4831:36:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 3976,
                                                "nodeType": "ExpressionStatement",
                                                "src": "4831:36:15"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 3980,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "requestIssue",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 3844,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3839,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3980,
                                    "src": "3486:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3838,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3486:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3841,
                                    "name": "buyer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3980,
                                    "src": "3502:13:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3840,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3502:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3843,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3980,
                                    "src": "3517:16:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 3842,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3517:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3485:49:15"
                        },
                        "returnParameters": {
                            "id": 3845,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "3542:0:15"
                        },
                        "scope": 5750,
                        "src": "3464:1422:15",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 4093,
                            "nodeType": "Block",
                            "src": "5106:1049:15",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 3992,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 3990,
                                                    "name": "amount",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3982,
                                                    "src": "5175:6:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "!=",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "30",
                                                    "id": 3991,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "5185:1:15",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0"
                                                },
                                                "src": "5175:11:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 3989,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "5167:7:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 3993,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5167:20:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 3994,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5167:20:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 3999,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "UnaryOperation",
                                                "operator": "!",
                                                "prefix": true,
                                                "src": "5206:17:15",
                                                "subExpression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 3996,
                                                        "name": "_lock",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3711,
                                                        "src": "5207:5:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                            "typeString": "mapping(bytes32 => bool)"
                                                        }
                                                    },
                                                    "id": 3998,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "72656365697074",
                                                        "id": 3997,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "5213:9:15",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_8ad7c532f0538a191f1e436b6ca6710d0a78a349291c8b8f31962a26fb22e7e8",
                                                            "typeString": "literal_string \"receipt\""
                                                        },
                                                        "value": "receipt"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "5207:16:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "4c6f636b206f6e206465706f73697473",
                                                "id": 4000,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "5225:18:15",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_c70fc913b29d522b0cf5d7bf60f3b229f68995be5ff512bc2cfa283fb024f964",
                                                    "typeString": "literal_string \"Lock on deposits\""
                                                },
                                                "value": "Lock on deposits"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_c70fc913b29d522b0cf5d7bf60f3b229f68995be5ff512bc2cfa283fb024f964",
                                                    "typeString": "literal_string \"Lock on deposits\""
                                                }
                                            ],
                                            "id": 3995,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13011,
                                            "src": "5198:7:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 4001,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5198:46:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4002,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5198:46:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 4007,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 4003,
                                                "name": "_lock",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3711,
                                                "src": "5255:5:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                    "typeString": "mapping(bytes32 => bool)"
                                                }
                                            },
                                            "id": 4005,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "72656365697074",
                                                "id": 4004,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "5261:9:15",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_8ad7c532f0538a191f1e436b6ca6710d0a78a349291c8b8f31962a26fb22e7e8",
                                                    "typeString": "literal_string \"receipt\""
                                                },
                                                "value": "receipt"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "5255:16:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "hexValue": "74727565",
                                            "id": 4006,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "5274:4:15",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "value": "true"
                                        },
                                        "src": "5255:23:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 4008,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5255:23:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 4025,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4009,
                                                        "name": "_deposits",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3659,
                                                        "src": "5289:9:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                            "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                        }
                                                    },
                                                    "id": 4012,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4010,
                                                        "name": "buyer",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3984,
                                                        "src": "5299:5:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "5289:16:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                        "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                    }
                                                },
                                                "id": 4013,
                                                "indexExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4011,
                                                    "name": "currency",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3986,
                                                    "src": "5306:8:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "5289:26:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                    "typeString": "struct Cash.deposit storage ref"
                                                }
                                            },
                                            "id": 4014,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberName": "depositAmount",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 3641,
                                            "src": "5289:40:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4017,
                                                                "name": "_deposits",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3659,
                                                                "src": "5341:9:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                    "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                }
                                                            },
                                                            "id": 4019,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4018,
                                                                "name": "buyer",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3984,
                                                                "src": "5351:5:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "5341:16:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                            }
                                                        },
                                                        "id": 4021,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4020,
                                                            "name": "currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3986,
                                                            "src": "5358:8:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "5341:26:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                            "typeString": "struct Cash.deposit storage ref"
                                                        }
                                                    },
                                                    "id": 4022,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "depositAmount",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 3641,
                                                    "src": "5341:40:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "argumentTypes": null,
                                                    "id": 4023,
                                                    "name": "amount",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3982,
                                                    "src": "5383:6:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4015,
                                                    "name": "Math",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10483,
                                                    "src": "5332:4:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                        "typeString": "type(library Math)"
                                                    }
                                                },
                                                "id": 4016,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "add",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 10236,
                                                "src": "5332:8:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 4024,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "5332:58:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "5289:101:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 4026,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5289:101:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 4034,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4027,
                                                        "name": "_deposits",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3659,
                                                        "src": "5401:9:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                            "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                        }
                                                    },
                                                    "id": 4030,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4028,
                                                        "name": "buyer",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3984,
                                                        "src": "5411:5:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "5401:16:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                        "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                    }
                                                },
                                                "id": 4031,
                                                "indexExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4029,
                                                    "name": "currency",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3986,
                                                    "src": "5418:8:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "5401:26:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                    "typeString": "struct Cash.deposit storage ref"
                                                }
                                            },
                                            "id": 4032,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberName": "depositor",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 3645,
                                            "src": "5401:36:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 4033,
                                            "name": "buyer",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3984,
                                            "src": "5440:5:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "5401:44:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 4035,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5401:44:15"
                                },
                                {
                                    "assignments": [
                                        4037
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 4037,
                                            "name": "rate",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 4093,
                                            "src": "5520:12:15",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 4036,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "5520:7:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 4038,
                                    "initialValue": null,
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "5520:12:15"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        },
                                        "id": 4047,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 4041,
                                                    "name": "currency",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3986,
                                                    "src": "5574:8:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                {
                                                    "argumentTypes": null,
                                                    "hexValue": "56696143617368",
                                                    "id": 4042,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "string",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "5584:9:15",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                        "typeString": "literal_string \"ViaCash\""
                                                    },
                                                    "value": "ViaCash"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                        "typeString": "literal_string \"ViaCash\""
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4039,
                                                    "name": "_factory",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3633,
                                                    "src": "5546:8:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                        "typeString": "contract ViaFactory"
                                                    }
                                                },
                                                "id": 4040,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "getTokenByNameType",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 8276,
                                                "src": "5546:27:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                                                    "typeString": "function (bytes32,bytes32) view external returns (address)"
                                                }
                                            },
                                            "id": 4043,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "5546:48:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "!=",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "hexValue": "307830",
                                                    "id": 4045,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "5604:3:15",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0x0"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    }
                                                ],
                                                "id": 4044,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "5596:7:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_address_$",
                                                    "typeString": "type(address)"
                                                },
                                                "typeName": "address"
                                            },
                                            "id": 4046,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "5596:12:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address_payable",
                                                "typeString": "address payable"
                                            }
                                        },
                                        "src": "5546:62:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 4068,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftHandSide": {
                                                "argumentTypes": null,
                                                "id": 4057,
                                                "name": "rate",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4037,
                                                "src": "5911:4:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "nodeType": "Assignment",
                                            "operator": "=",
                                            "rightHandSide": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 4060,
                                                        "name": "currency",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3986,
                                                        "src": "5934:8:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "hexValue": "32",
                                                                "id": 4063,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "number",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "5976:1:15",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_rational_2_by_1",
                                                                    "typeString": "int_const 2"
                                                                },
                                                                "value": "2"
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "hexValue": "35",
                                                                "id": 4064,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "number",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "5978:1:15",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_rational_5_by_1",
                                                                    "typeString": "int_const 5"
                                                                },
                                                                "value": "5"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_rational_2_by_1",
                                                                    "typeString": "int_const 2"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_rational_5_by_1",
                                                                    "typeString": "int_const 5"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 4061,
                                                                "name": "_cashtokenName",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3639,
                                                                "src": "5944:14:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "id": 4062,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "substringinbytes",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 12782,
                                                            "src": "5944:31:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_delegatecall_pure$_t_bytes32_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$bound_to$_t_bytes32_$",
                                                                "typeString": "function (bytes32,uint256,uint256) pure returns (bytes32)"
                                                            }
                                                        },
                                                        "id": 4065,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "5944:36:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "hexValue": "6572",
                                                        "id": 4066,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "5982:4:15",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_8d59d30b2e0636060cbadd07e789f8a1580adc30d4dc8bc4ff048650ee7844f3",
                                                            "typeString": "literal_string \"er\""
                                                        },
                                                        "value": "er"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_stringliteral_8d59d30b2e0636060cbadd07e789f8a1580adc30d4dc8bc4ff048650ee7844f3",
                                                            "typeString": "literal_string \"er\""
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 4058,
                                                        "name": "_oracle",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3637,
                                                        "src": "5918:7:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_ViaOracle_$8427",
                                                            "typeString": "contract ViaOracle"
                                                        }
                                                    },
                                                    "id": 4059,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "request",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 8415,
                                                    "src": "5918:15:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$",
                                                        "typeString": "function (bytes32,bytes32,bytes32) external returns (uint256)"
                                                    }
                                                },
                                                "id": 4067,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "5918:69:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "src": "5911:76:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 4069,
                                        "nodeType": "ExpressionStatement",
                                        "src": "5911:76:15"
                                    },
                                    "id": 4070,
                                    "nodeType": "IfStatement",
                                    "src": "5543:444:15",
                                    "trueBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 4055,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftHandSide": {
                                                "argumentTypes": null,
                                                "id": 4048,
                                                "name": "rate",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4037,
                                                "src": "5685:4:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "nodeType": "Assignment",
                                            "operator": "=",
                                            "rightHandSide": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 4051,
                                                        "name": "currency",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3986,
                                                        "src": "5708:8:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 4052,
                                                        "name": "_cashtokenName",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3639,
                                                        "src": "5718:14:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "hexValue": "766572",
                                                        "id": 4053,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "5734:5:15",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_2a30ae68ef41453c4785709d2ce90b5b4f47543810125db1fedbf78bdfa6a766",
                                                            "typeString": "literal_string \"ver\""
                                                        },
                                                        "value": "ver"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_stringliteral_2a30ae68ef41453c4785709d2ce90b5b4f47543810125db1fedbf78bdfa6a766",
                                                            "typeString": "literal_string \"ver\""
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 4049,
                                                        "name": "_oracle",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3637,
                                                        "src": "5692:7:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_ViaOracle_$8427",
                                                            "typeString": "contract ViaOracle"
                                                        }
                                                    },
                                                    "id": 4050,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "request",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 8415,
                                                    "src": "5692:15:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$",
                                                        "typeString": "function (bytes32,bytes32,bytes32) external returns (uint256)"
                                                    }
                                                },
                                                "id": 4054,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "5692:48:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "src": "5685:55:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 4056,
                                        "nodeType": "ExpressionStatement",
                                        "src": "5685:55:15"
                                    }
                                },
                                {
                                    "eventCall": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 4072,
                                                "name": "buyer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3984,
                                                "src": "6016:5:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4073,
                                                "name": "currency",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3986,
                                                "src": "6023:8:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4074,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3982,
                                                "src": "6033:6:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 4071,
                                            "name": "CashDeposits",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3695,
                                            "src": "6003:12:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,bytes32,uint256)"
                                            }
                                        },
                                        "id": 4075,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6003:37:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4076,
                                    "nodeType": "EmitStatement",
                                    "src": "5998:42:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 4078,
                                                "name": "buyer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3984,
                                                "src": "6057:5:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4079,
                                                "name": "currency",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3986,
                                                "src": "6064:8:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 4082,
                                                        "name": "rate",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4037,
                                                        "src": "6093:4:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 4083,
                                                        "name": "amount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3982,
                                                        "src": "6099:6:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 4080,
                                                        "name": "FixedPoint",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8909,
                                                        "src": "6074:10:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                            "typeString": "type(library FixedPoint)"
                                                        }
                                                    },
                                                    "id": 4081,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "mulDown",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 8604,
                                                    "src": "6074:18:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                    }
                                                },
                                                "id": 4084,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "6074:32:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 4077,
                                            "name": "issue",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4222,
                                            "src": "6051:5:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,bytes32,uint256)"
                                            }
                                        },
                                        "id": 4085,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6051:56:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4086,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6051:56:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 4091,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 4087,
                                                "name": "_lock",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3711,
                                                "src": "6118:5:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                    "typeString": "mapping(bytes32 => bool)"
                                                }
                                            },
                                            "id": 4089,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "72656365697074",
                                                "id": 4088,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "6124:9:15",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_8ad7c532f0538a191f1e436b6ca6710d0a78a349291c8b8f31962a26fb22e7e8",
                                                    "typeString": "literal_string \"receipt\""
                                                },
                                                "value": "receipt"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "6118:16:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "hexValue": "66616c7365",
                                            "id": 4090,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "6137:5:15",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "value": "false"
                                        },
                                        "src": "6118:24:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 4092,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6118:24:15"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4094,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "makeDeposit",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 3987,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3982,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4094,
                                    "src": "5049:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3981,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5049:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3984,
                                    "name": "buyer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4094,
                                    "src": "5065:13:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3983,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5065:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3986,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4094,
                                    "src": "5080:16:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 3985,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5080:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "5048:49:15"
                        },
                        "returnParameters": {
                            "id": 3988,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "5106:0:15"
                        },
                        "scope": 5750,
                        "src": "5028:1127:15",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 4179,
                            "nodeType": "Block",
                            "src": "6372:657:15",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 4112,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4110,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 12542,
                                                    "src": "6430:6:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 4111,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "6440:5:15",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "6430:15:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 4109,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "6422:7:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 4113,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6422:24:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4114,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6422:24:15"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 4119,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 4115,
                                                "name": "currencyIndex",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3653,
                                                "src": "6507:13:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                    "typeString": "mapping(bytes32 => uint256)"
                                                }
                                            },
                                            "id": 4117,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 4116,
                                                "name": "currency",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4100,
                                                "src": "6521:8:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "6507:23:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 4118,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "6532:1:15",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "src": "6507:26:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": null,
                                    "id": 4134,
                                    "nodeType": "IfStatement",
                                    "src": "6504:140:15",
                                    "trueBody": {
                                        "id": 4133,
                                        "nodeType": "Block",
                                        "src": "6534:110:15",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4123,
                                                            "name": "currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4100,
                                                            "src": "6565:8:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 4120,
                                                            "name": "currencies",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3649,
                                                            "src": "6549:10:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                "typeString": "bytes32[] storage ref"
                                                            }
                                                        },
                                                        "id": 4122,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "push",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "6549:15:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$",
                                                            "typeString": "function (bytes32) returns (uint256)"
                                                        }
                                                    },
                                                    "id": 4124,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "6549:25:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 4125,
                                                "nodeType": "ExpressionStatement",
                                                "src": "6549:25:15"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4131,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4126,
                                                            "name": "currencyIndex",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3653,
                                                            "src": "6589:13:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                                "typeString": "mapping(bytes32 => uint256)"
                                                            }
                                                        },
                                                        "id": 4128,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4127,
                                                            "name": "currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4100,
                                                            "src": "6603:8:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "6589:23:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 4129,
                                                            "name": "currencies",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3649,
                                                            "src": "6615:10:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                "typeString": "bytes32[] storage ref"
                                                            }
                                                        },
                                                        "id": 4130,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "length",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "6615:17:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "6589:43:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 4132,
                                                "nodeType": "ExpressionStatement",
                                                "src": "6589:43:15"
                                            }
                                        ]
                                    }
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 4143,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4135,
                                                        "name": "_deposits",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3659,
                                                        "src": "6654:9:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                            "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                        }
                                                    },
                                                    "id": 4138,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4136,
                                                        "name": "payer",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4098,
                                                        "src": "6664:5:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "6654:16:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                        "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                    }
                                                },
                                                "id": 4139,
                                                "indexExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4137,
                                                    "name": "currency",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 4100,
                                                    "src": "6671:8:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "6654:26:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                    "typeString": "struct Cash.deposit storage ref"
                                                }
                                            },
                                            "id": 4140,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberName": "depositor",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 3645,
                                            "src": "6654:36:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 4141,
                                                "name": "msg",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 13007,
                                                "src": "6693:3:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_magic_message",
                                                    "typeString": "msg"
                                                }
                                            },
                                            "id": 4142,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "sender",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": null,
                                            "src": "6693:10:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address_payable",
                                                "typeString": "address payable"
                                            }
                                        },
                                        "src": "6654:49:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 4144,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6654:49:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 4161,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4145,
                                                        "name": "_deposits",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3659,
                                                        "src": "6714:9:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                            "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                        }
                                                    },
                                                    "id": 4148,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4146,
                                                        "name": "payer",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4098,
                                                        "src": "6724:5:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "6714:16:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                        "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                    }
                                                },
                                                "id": 4149,
                                                "indexExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4147,
                                                    "name": "currency",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 4100,
                                                    "src": "6731:8:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "6714:26:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                    "typeString": "struct Cash.deposit storage ref"
                                                }
                                            },
                                            "id": 4150,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberName": "depositAmount",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 3641,
                                            "src": "6714:40:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4153,
                                                                "name": "_deposits",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3659,
                                                                "src": "6766:9:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                    "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                }
                                                            },
                                                            "id": 4155,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4154,
                                                                "name": "payer",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4098,
                                                                "src": "6776:5:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "6766:16:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                            }
                                                        },
                                                        "id": 4157,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4156,
                                                            "name": "currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4100,
                                                            "src": "6783:8:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "6766:26:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                            "typeString": "struct Cash.deposit storage ref"
                                                        }
                                                    },
                                                    "id": 4158,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "depositAmount",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 3641,
                                                    "src": "6766:40:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "argumentTypes": null,
                                                    "id": 4159,
                                                    "name": "amount",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 4096,
                                                    "src": "6808:6:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4151,
                                                    "name": "Math",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10483,
                                                    "src": "6757:4:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                        "typeString": "type(library Math)"
                                                    }
                                                },
                                                "id": 4152,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "add",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 10236,
                                                "src": "6757:8:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 4160,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "6757:58:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "6714:101:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 4162,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6714:101:15"
                                },
                                {
                                    "eventCall": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 4164,
                                                "name": "payer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4098,
                                                "src": "6844:5:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4165,
                                                "name": "currency",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4100,
                                                "src": "6851:8:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4166,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4096,
                                                "src": "6861:6:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 4163,
                                            "name": "CashDeposits",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3695,
                                            "src": "6831:12:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,bytes32,uint256)"
                                            }
                                        },
                                        "id": 4167,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6831:37:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4168,
                                    "nodeType": "EmitStatement",
                                    "src": "6826:42:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 4170,
                                                "name": "payer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4098,
                                                "src": "6971:5:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4171,
                                                "name": "currency",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4100,
                                                "src": "6978:8:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 4174,
                                                        "name": "amount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4096,
                                                        "src": "7007:6:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "hexValue": "31653138",
                                                        "id": 4175,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "7015:4:15",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_1000000000000000000_by_1",
                                                            "typeString": "int_const 1000000000000000000"
                                                        },
                                                        "value": "1e18"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_rational_1000000000000000000_by_1",
                                                            "typeString": "int_const 1000000000000000000"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 4172,
                                                        "name": "FixedPoint",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8909,
                                                        "src": "6988:10:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                            "typeString": "type(library FixedPoint)"
                                                        }
                                                    },
                                                    "id": 4173,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "mulDown",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 8604,
                                                    "src": "6988:18:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                    }
                                                },
                                                "id": 4176,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "6988:32:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 4169,
                                            "name": "issue",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4222,
                                            "src": "6965:5:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,bytes32,uint256)"
                                            }
                                        },
                                        "id": 4177,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6965:56:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4178,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6965:56:15"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4180,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 4103,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 13007,
                                            "src": "6338:3:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 4104,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": null,
                                        "src": "6338:10:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 4105,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 4102,
                                    "name": "onlyCustodian",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3665,
                                    "src": "6324:13:15",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "6324:25:15"
                            }
                        ],
                        "name": "payIn",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4101,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4096,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4180,
                                    "src": "6275:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 4095,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6275:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4098,
                                    "name": "payer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4180,
                                    "src": "6291:13:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4097,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6291:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4100,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4180,
                                    "src": "6306:16:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 4099,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6306:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "6274:49:15"
                        },
                        "returnParameters": {
                            "id": 4108,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4107,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4180,
                                    "src": "6367:4:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 4106,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6367:4:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "6366:6:15"
                        },
                        "scope": 5750,
                        "src": "6260:769:15",
                        "stateMutability": "nonpayable",
                        "superFunction": 8200,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 4221,
                            "nodeType": "Block",
                            "src": "7285:341:15",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 4205,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4189,
                                                        "name": "_deposits",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3659,
                                                        "src": "7341:9:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                            "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                        }
                                                    },
                                                    "id": 4192,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4190,
                                                        "name": "party",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4182,
                                                        "src": "7351:5:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "7341:16:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                        "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                    }
                                                },
                                                "id": 4193,
                                                "indexExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4191,
                                                    "name": "currency",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 4184,
                                                    "src": "7358:8:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "7341:26:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                    "typeString": "struct Cash.deposit storage ref"
                                                }
                                            },
                                            "id": 4194,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberName": "issuedAmount",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 3643,
                                            "src": "7341:39:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4197,
                                                                "name": "_deposits",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3659,
                                                                "src": "7392:9:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                    "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                }
                                                            },
                                                            "id": 4199,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4198,
                                                                "name": "party",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4182,
                                                                "src": "7402:5:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "7392:16:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                            }
                                                        },
                                                        "id": 4201,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4200,
                                                            "name": "currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4184,
                                                            "src": "7409:8:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "7392:26:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                            "typeString": "struct Cash.deposit storage ref"
                                                        }
                                                    },
                                                    "id": 4202,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "issuedAmount",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 3643,
                                                    "src": "7392:39:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "argumentTypes": null,
                                                    "id": 4203,
                                                    "name": "amount",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 4186,
                                                    "src": "7433:6:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4195,
                                                    "name": "Math",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10483,
                                                    "src": "7383:4:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                        "typeString": "type(library Math)"
                                                    }
                                                },
                                                "id": 4196,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "add",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 10236,
                                                "src": "7383:8:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 4204,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "7383:57:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "7341:99:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 4206,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7341:99:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 4208,
                                                "name": "party",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4182,
                                                "src": "7495:5:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4209,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4186,
                                                "src": "7502:6:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 4207,
                                            "name": "_mint",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 12418,
                                            "src": "7489:5:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,uint256)"
                                            }
                                        },
                                        "id": 4210,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7489:20:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4211,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7489:20:15"
                                },
                                {
                                    "eventCall": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 4213,
                                                "name": "party",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4182,
                                                "src": "7570:5:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4214,
                                                "name": "_cashtokenName",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3639,
                                                "src": "7577:14:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4215,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4186,
                                                "src": "7593:6:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 4217,
                                                        "name": "party",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4182,
                                                        "src": "7611:5:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 4216,
                                                    "name": "balanceOf",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 12173,
                                                    "src": "7601:9:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
                                                        "typeString": "function (address) view returns (uint256)"
                                                    }
                                                },
                                                "id": 4218,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "7601:16:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 4212,
                                            "name": "CashIssued",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3675,
                                            "src": "7559:10:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,bytes32,uint256,uint256)"
                                            }
                                        },
                                        "id": 4219,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7559:59:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4220,
                                    "nodeType": "EmitStatement",
                                    "src": "7554:64:15"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4222,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "issue",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4187,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4182,
                                    "name": "party",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4222,
                                    "src": "7228:13:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4181,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7228:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4184,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4222,
                                    "src": "7243:16:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 4183,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7243:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4186,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4222,
                                    "src": "7261:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 4185,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7261:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7227:49:15"
                        },
                        "returnParameters": {
                            "id": 4188,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "7285:0:15"
                        },
                        "scope": 5750,
                        "src": "7213:413:15",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 4254,
                            "nodeType": "Block",
                            "src": "7760:160:15",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 4246,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "id": 4238,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4234,
                                                                    "name": "msg",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 13007,
                                                                    "src": "7796:3:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_magic_message",
                                                                        "typeString": "msg"
                                                                    }
                                                                },
                                                                "id": 4235,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "sender",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": null,
                                                                "src": "7796:10:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 4232,
                                                                "name": "_factory",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3633,
                                                                "src": "7779:8:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                    "typeString": "contract ViaFactory"
                                                                }
                                                            },
                                                            "id": 4233,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "getType",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8240,
                                                            "src": "7779:16:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$",
                                                                "typeString": "function (address) view external returns (bytes32)"
                                                            }
                                                        },
                                                        "id": 4236,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "7779:28:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "56696143617368",
                                                        "id": 4237,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "7811:9:15",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                            "typeString": "literal_string \"ViaCash\""
                                                        },
                                                        "value": "ViaCash"
                                                    },
                                                    "src": "7779:41:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "||",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "id": 4245,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4241,
                                                                    "name": "msg",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 13007,
                                                                    "src": "7841:3:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_magic_message",
                                                                        "typeString": "msg"
                                                                    }
                                                                },
                                                                "id": 4242,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "sender",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": null,
                                                                "src": "7841:10:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 4239,
                                                                "name": "_factory",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3633,
                                                                "src": "7824:8:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                    "typeString": "contract ViaFactory"
                                                                }
                                                            },
                                                            "id": 4240,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "getType",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8240,
                                                            "src": "7824:16:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$",
                                                                "typeString": "function (address) view external returns (bytes32)"
                                                            }
                                                        },
                                                        "id": 4243,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "7824:28:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "566961426f6e64",
                                                        "id": 4244,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "7856:9:15",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_52973aa3d1d0b9b2038bddf6fa0399136f1ab1c5f89b7edd623ff24875d0ed1f",
                                                            "typeString": "literal_string \"ViaBond\""
                                                        },
                                                        "value": "ViaBond"
                                                    },
                                                    "src": "7824:41:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "src": "7779:86:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 4231,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "7771:7:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 4247,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7771:95:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4248,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7771:95:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 4250,
                                                "name": "tokens",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4224,
                                                "src": "7897:6:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4251,
                                                "name": "sender",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4226,
                                                "src": "7905:6:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "id": 4249,
                                            "name": "addToBalance",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4284,
                                            "src": "7884:12:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_bool_$",
                                                "typeString": "function (uint256,address) returns (bool)"
                                            }
                                        },
                                        "id": 4252,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7884:28:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "functionReturnParameters": 4230,
                                    "id": 4253,
                                    "nodeType": "Return",
                                    "src": "7877:35:15"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4255,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "requestAddToBalance",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4227,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4224,
                                    "name": "tokens",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4255,
                                    "src": "7705:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 4223,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7705:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4226,
                                    "name": "sender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4255,
                                    "src": "7721:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4225,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7721:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7704:32:15"
                        },
                        "returnParameters": {
                            "id": 4230,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4229,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4255,
                                    "src": "7755:4:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 4228,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7755:4:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7754:6:15"
                        },
                        "scope": 5750,
                        "src": "7676:244:15",
                        "stateMutability": "nonpayable",
                        "superFunction": 8180,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 4283,
                            "nodeType": "Block",
                            "src": "8082:248:15",
                            "statements": [
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 4268,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 4265,
                                                    "name": "sender",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 4259,
                                                    "src": "8171:6:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "id": 4264,
                                                "name": "balanceOf",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 12173,
                                                "src": "8161:9:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
                                                    "typeString": "function (address) view returns (uint256)"
                                                }
                                            },
                                            "id": 4266,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "8161:17:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">=",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "id": 4267,
                                            "name": "tokens",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4257,
                                            "src": "8182:6:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "8161:27:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "hexValue": "66616c7365",
                                            "id": 4280,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8317:5:15",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "value": "false"
                                        },
                                        "functionReturnParameters": 4263,
                                        "id": 4281,
                                        "nodeType": "Return",
                                        "src": "8310:12:15"
                                    },
                                    "id": 4282,
                                    "nodeType": "IfStatement",
                                    "src": "8158:164:15",
                                    "trueBody": {
                                        "id": 4279,
                                        "nodeType": "Block",
                                        "src": "8189:93:15",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4270,
                                                            "name": "sender",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4259,
                                                            "src": "8214:6:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 4272,
                                                                    "name": "this",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 13077,
                                                                    "src": "8230:4:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_Cash_$5750",
                                                                        "typeString": "contract Cash"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_contract$_Cash_$5750",
                                                                        "typeString": "contract Cash"
                                                                    }
                                                                ],
                                                                "id": 4271,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "lValueRequested": false,
                                                                "nodeType": "ElementaryTypeNameExpression",
                                                                "src": "8222:7:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_address_$",
                                                                    "typeString": "type(address)"
                                                                },
                                                                "typeName": "address"
                                                            },
                                                            "id": 4273,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "8222:13:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4274,
                                                            "name": "tokens",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4257,
                                                            "src": "8237:6:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "id": 4269,
                                                        "name": "_transfer",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 12375,
                                                        "src": "8204:9:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                                                            "typeString": "function (address,address,uint256)"
                                                        }
                                                    },
                                                    "id": 4275,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "8204:40:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 4276,
                                                "nodeType": "ExpressionStatement",
                                                "src": "8204:40:15"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "74727565",
                                                    "id": 4277,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "8266:4:15",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "true"
                                                },
                                                "functionReturnParameters": 4263,
                                                "id": 4278,
                                                "nodeType": "Return",
                                                "src": "8259:11:15"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4284,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "addToBalance",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4260,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4257,
                                    "name": "tokens",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4284,
                                    "src": "8028:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 4256,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8028:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4259,
                                    "name": "sender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4284,
                                    "src": "8044:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4258,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8044:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "8027:32:15"
                        },
                        "returnParameters": {
                            "id": 4263,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4262,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4284,
                                    "src": "8077:4:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 4261,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8077:4:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "8076:6:15"
                        },
                        "scope": 5750,
                        "src": "8006:324:15",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 5108,
                            "nodeType": "Block",
                            "src": "8662:8651:15",
                            "statements": [
                                {
                                    "assignments": [
                                        4298
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 4298,
                                            "name": "found",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 5108,
                                            "src": "8673:10:15",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "typeName": {
                                                "id": 4297,
                                                "name": "bool",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8673:4:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 4300,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "hexValue": "66616c7365",
                                        "id": 4299,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "8686:5:15",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "value": "false"
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "8673:18:15"
                                },
                                {
                                    "assignments": [
                                        4302
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 4302,
                                            "name": "length",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 5108,
                                            "src": "8702:11:15",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 4301,
                                                "name": "uint",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8702:4:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 4305,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 4303,
                                            "name": "currencies",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3649,
                                            "src": "8716:10:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                "typeString": "bytes32[] storage ref"
                                            }
                                        },
                                        "id": 4304,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": null,
                                        "src": "8716:17:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "8702:31:15"
                                },
                                {
                                    "body": {
                                        "id": 5104,
                                        "nodeType": "Block",
                                        "src": "8784:8499:15",
                                        "statements": [
                                            {
                                                "condition": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "id": 4340,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "commonType": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "id": 4329,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "argumentTypes": null,
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 4320,
                                                                        "name": "_deposits",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 3659,
                                                                        "src": "8805:9:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                            "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                        }
                                                                    },
                                                                    "id": 4322,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 4321,
                                                                        "name": "party",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 4288,
                                                                        "src": "8815:5:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "8805:16:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                        "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                    }
                                                                },
                                                                "id": 4326,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 4323,
                                                                        "name": "currencies",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 3649,
                                                                        "src": "8822:10:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                            "typeString": "bytes32[] storage ref"
                                                                        }
                                                                    },
                                                                    "id": 4325,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 4324,
                                                                        "name": "i",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 4307,
                                                                        "src": "8833:1:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "8822:13:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "8805:31:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                    "typeString": "struct Cash.deposit storage ref"
                                                                }
                                                            },
                                                            "id": 4327,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "issuedAmount",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 3643,
                                                            "src": "8805:44:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": "!=",
                                                        "rightExpression": {
                                                            "argumentTypes": null,
                                                            "hexValue": "30",
                                                            "id": 4328,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "number",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "8851:1:15",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                "typeString": "int_const 0"
                                                            },
                                                            "value": "0"
                                                        },
                                                        "src": "8805:47:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "&&",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "commonType": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "id": 4339,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "argumentTypes": null,
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 4330,
                                                                        "name": "_deposits",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 3659,
                                                                        "src": "8856:9:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                            "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                        }
                                                                    },
                                                                    "id": 4332,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 4331,
                                                                        "name": "party",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 4288,
                                                                        "src": "8866:5:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "8856:16:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                        "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                    }
                                                                },
                                                                "id": 4336,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 4333,
                                                                        "name": "currencies",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 3649,
                                                                        "src": "8873:10:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                            "typeString": "bytes32[] storage ref"
                                                                        }
                                                                    },
                                                                    "id": 4335,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 4334,
                                                                        "name": "i",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 4307,
                                                                        "src": "8884:1:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "8873:13:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "8856:31:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                    "typeString": "struct Cash.deposit storage ref"
                                                                }
                                                            },
                                                            "id": 4337,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "depositAmount",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 3641,
                                                            "src": "8856:45:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": "!=",
                                                        "rightExpression": {
                                                            "argumentTypes": null,
                                                            "hexValue": "30",
                                                            "id": 4338,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "number",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "8904:1:15",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                "typeString": "int_const 0"
                                                            },
                                                            "value": "0"
                                                        },
                                                        "src": "8856:49:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "src": "8805:100:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": null,
                                                "id": 5103,
                                                "nodeType": "IfStatement",
                                                "src": "8802:8470:15",
                                                "trueBody": {
                                                    "id": 5102,
                                                    "nodeType": "Block",
                                                    "src": "8906:8366:15",
                                                    "statements": [
                                                        {
                                                            "assignments": [
                                                                4342
                                                            ],
                                                            "declarations": [
                                                                {
                                                                    "constant": false,
                                                                    "id": 4342,
                                                                    "name": "value",
                                                                    "nodeType": "VariableDeclaration",
                                                                    "scope": 5102,
                                                                    "src": "9053:13:15",
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "typeName": {
                                                                        "id": 4341,
                                                                        "name": "uint256",
                                                                        "nodeType": "ElementaryTypeName",
                                                                        "src": "9053:7:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                }
                                                            ],
                                                            "id": 4366,
                                                            "initialValue": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "arguments": [
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 4347,
                                                                                "name": "amount",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 4286,
                                                                                "src": "9107:6:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "expression": {
                                                                                    "argumentTypes": null,
                                                                                    "baseExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "baseExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 4348,
                                                                                            "name": "_deposits",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 3659,
                                                                                            "src": "9115:9:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                            }
                                                                                        },
                                                                                        "id": 4350,
                                                                                        "indexExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 4349,
                                                                                            "name": "party",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 4288,
                                                                                            "src": "9125:5:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            }
                                                                                        },
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "IndexAccess",
                                                                                        "src": "9115:16:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                            "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                        }
                                                                                    },
                                                                                    "id": 4354,
                                                                                    "indexExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "baseExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 4351,
                                                                                            "name": "currencies",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 3649,
                                                                                            "src": "9132:10:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                "typeString": "bytes32[] storage ref"
                                                                                            }
                                                                                        },
                                                                                        "id": 4353,
                                                                                        "indexExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 4352,
                                                                                            "name": "i",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 4307,
                                                                                            "src": "9143:1:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "IndexAccess",
                                                                                        "src": "9132:13:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        }
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "9115:31:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                        "typeString": "struct Cash.deposit storage ref"
                                                                                    }
                                                                                },
                                                                                "id": 4355,
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "memberName": "issuedAmount",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 3643,
                                                                                "src": "9115:44:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "id": 4345,
                                                                                "name": "FixedPoint",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 8909,
                                                                                "src": "9088:10:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                    "typeString": "type(library FixedPoint)"
                                                                                }
                                                                            },
                                                                            "id": 4346,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "divDown",
                                                                            "nodeType": "MemberAccess",
                                                                            "referencedDeclaration": 8695,
                                                                            "src": "9088:18:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                            }
                                                                        },
                                                                        "id": 4356,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "functionCall",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "9088:72:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "baseExpression": {
                                                                                "argumentTypes": null,
                                                                                "baseExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 4357,
                                                                                    "name": "_deposits",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 3659,
                                                                                    "src": "9162:9:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                        "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                    }
                                                                                },
                                                                                "id": 4359,
                                                                                "indexExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 4358,
                                                                                    "name": "party",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 4288,
                                                                                    "src": "9172:5:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    }
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "9162:16:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 4363,
                                                                            "indexExpression": {
                                                                                "argumentTypes": null,
                                                                                "baseExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 4360,
                                                                                    "name": "currencies",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 3649,
                                                                                    "src": "9179:10:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                        "typeString": "bytes32[] storage ref"
                                                                                    }
                                                                                },
                                                                                "id": 4362,
                                                                                "indexExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 4361,
                                                                                    "name": "i",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 4307,
                                                                                    "src": "9190:1:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "9179:13:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "9162:31:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                "typeString": "struct Cash.deposit storage ref"
                                                                            }
                                                                        },
                                                                        "id": 4364,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "depositAmount",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 3641,
                                                                        "src": "9162:45:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "id": 4343,
                                                                        "name": "FixedPoint",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8909,
                                                                        "src": "9069:10:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                            "typeString": "type(library FixedPoint)"
                                                                        }
                                                                    },
                                                                    "id": 4344,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "mulDown",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 8604,
                                                                    "src": "9069:18:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                    }
                                                                },
                                                                "id": 4365,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "9069:139:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "nodeType": "VariableDeclarationStatement",
                                                            "src": "9053:155:15"
                                                        },
                                                        {
                                                            "condition": {
                                                                "argumentTypes": null,
                                                                "commonType": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                "id": 4391,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftExpression": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    },
                                                                    "id": 4380,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "leftExpression": {
                                                                        "argumentTypes": null,
                                                                        "commonType": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        "id": 4376,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "leftExpression": {
                                                                            "argumentTypes": null,
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "baseExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "baseExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 4367,
                                                                                        "name": "_deposits",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 3659,
                                                                                        "src": "9230:9:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                            "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                        }
                                                                                    },
                                                                                    "id": 4369,
                                                                                    "indexExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 4368,
                                                                                        "name": "party",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 4288,
                                                                                        "src": "9240:5:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "9230:16:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                        "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                    }
                                                                                },
                                                                                "id": 4373,
                                                                                "indexExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "baseExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 4370,
                                                                                        "name": "currencies",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 3649,
                                                                                        "src": "9247:10:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                            "typeString": "bytes32[] storage ref"
                                                                                        }
                                                                                    },
                                                                                    "id": 4372,
                                                                                    "indexExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 4371,
                                                                                        "name": "i",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 4307,
                                                                                        "src": "9258:1:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "9247:13:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bytes32",
                                                                                        "typeString": "bytes32"
                                                                                    }
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "9230:31:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                    "typeString": "struct Cash.deposit storage ref"
                                                                                }
                                                                            },
                                                                            "id": 4374,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "issuedAmount",
                                                                            "nodeType": "MemberAccess",
                                                                            "referencedDeclaration": 3643,
                                                                            "src": "9230:44:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "nodeType": "BinaryOperation",
                                                                        "operator": ">=",
                                                                        "rightExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 4375,
                                                                            "name": "amount",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 4286,
                                                                            "src": "9278:6:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "src": "9230:54:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bool",
                                                                            "typeString": "bool"
                                                                        }
                                                                    },
                                                                    "nodeType": "BinaryOperation",
                                                                    "operator": "&&",
                                                                    "rightExpression": {
                                                                        "argumentTypes": null,
                                                                        "commonType": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        "id": 4379,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "leftExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 4377,
                                                                            "name": "value",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 4342,
                                                                            "src": "9288:5:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "nodeType": "BinaryOperation",
                                                                        "operator": ">",
                                                                        "rightExpression": {
                                                                            "argumentTypes": null,
                                                                            "hexValue": "30",
                                                                            "id": 4378,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "kind": "number",
                                                                            "lValueRequested": false,
                                                                            "nodeType": "Literal",
                                                                            "src": "9296:1:15",
                                                                            "subdenomination": null,
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                                "typeString": "int_const 0"
                                                                            },
                                                                            "value": "0"
                                                                        },
                                                                        "src": "9288:9:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bool",
                                                                            "typeString": "bool"
                                                                        }
                                                                    },
                                                                    "src": "9230:67:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    }
                                                                },
                                                                "nodeType": "BinaryOperation",
                                                                "operator": "&&",
                                                                "rightExpression": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "id": 4390,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "leftExpression": {
                                                                        "argumentTypes": null,
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "baseExpression": {
                                                                                "argumentTypes": null,
                                                                                "baseExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 4381,
                                                                                    "name": "_deposits",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 3659,
                                                                                    "src": "9301:9:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                        "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                    }
                                                                                },
                                                                                "id": 4383,
                                                                                "indexExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 4382,
                                                                                    "name": "party",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 4288,
                                                                                    "src": "9311:5:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    }
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "9301:16:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 4387,
                                                                            "indexExpression": {
                                                                                "argumentTypes": null,
                                                                                "baseExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 4384,
                                                                                    "name": "currencies",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 3649,
                                                                                    "src": "9318:10:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                        "typeString": "bytes32[] storage ref"
                                                                                    }
                                                                                },
                                                                                "id": 4386,
                                                                                "indexExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 4385,
                                                                                    "name": "i",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 4307,
                                                                                    "src": "9329:1:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "9318:13:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "9301:31:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                "typeString": "struct Cash.deposit storage ref"
                                                                            }
                                                                        },
                                                                        "id": 4388,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "depositAmount",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 3641,
                                                                        "src": "9301:45:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "nodeType": "BinaryOperation",
                                                                    "operator": ">=",
                                                                    "rightExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 4389,
                                                                        "name": "value",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 4342,
                                                                        "src": "9350:5:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "src": "9301:54:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    }
                                                                },
                                                                "src": "9230:125:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            },
                                                            "falseBody": {
                                                                "condition": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    },
                                                                    "id": 4731,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "leftExpression": {
                                                                        "argumentTypes": null,
                                                                        "commonType": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        "id": 4727,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "leftExpression": {
                                                                            "argumentTypes": null,
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "baseExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "baseExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 4718,
                                                                                        "name": "_deposits",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 3659,
                                                                                        "src": "13068:9:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                            "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                        }
                                                                                    },
                                                                                    "id": 4720,
                                                                                    "indexExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 4719,
                                                                                        "name": "party",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 4288,
                                                                                        "src": "13078:5:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "13068:16:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                        "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                    }
                                                                                },
                                                                                "id": 4724,
                                                                                "indexExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "baseExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 4721,
                                                                                        "name": "currencies",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 3649,
                                                                                        "src": "13085:10:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                            "typeString": "bytes32[] storage ref"
                                                                                        }
                                                                                    },
                                                                                    "id": 4723,
                                                                                    "indexExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 4722,
                                                                                        "name": "i",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 4307,
                                                                                        "src": "13096:1:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "13085:13:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bytes32",
                                                                                        "typeString": "bytes32"
                                                                                    }
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "13068:31:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                    "typeString": "struct Cash.deposit storage ref"
                                                                                }
                                                                            },
                                                                            "id": 4725,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "issuedAmount",
                                                                            "nodeType": "MemberAccess",
                                                                            "referencedDeclaration": 3643,
                                                                            "src": "13068:44:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "nodeType": "BinaryOperation",
                                                                        "operator": ">",
                                                                        "rightExpression": {
                                                                            "argumentTypes": null,
                                                                            "hexValue": "30",
                                                                            "id": 4726,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "kind": "number",
                                                                            "lValueRequested": false,
                                                                            "nodeType": "Literal",
                                                                            "src": "13115:1:15",
                                                                            "subdenomination": null,
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                                "typeString": "int_const 0"
                                                                            },
                                                                            "value": "0"
                                                                        },
                                                                        "src": "13068:48:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bool",
                                                                            "typeString": "bool"
                                                                        }
                                                                    },
                                                                    "nodeType": "BinaryOperation",
                                                                    "operator": "&&",
                                                                    "rightExpression": {
                                                                        "argumentTypes": null,
                                                                        "commonType": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        "id": 4730,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "leftExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 4728,
                                                                            "name": "value",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 4342,
                                                                            "src": "13120:5:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "nodeType": "BinaryOperation",
                                                                        "operator": ">",
                                                                        "rightExpression": {
                                                                            "argumentTypes": null,
                                                                            "hexValue": "30",
                                                                            "id": 4729,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "kind": "number",
                                                                            "lValueRequested": false,
                                                                            "nodeType": "Literal",
                                                                            "src": "13128:1:15",
                                                                            "subdenomination": null,
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                                "typeString": "int_const 0"
                                                                            },
                                                                            "value": "0"
                                                                        },
                                                                        "src": "13120:9:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bool",
                                                                            "typeString": "bool"
                                                                        }
                                                                    },
                                                                    "src": "13068:61:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    }
                                                                },
                                                                "falseBody": null,
                                                                "id": 5100,
                                                                "nodeType": "IfStatement",
                                                                "src": "13065:4192:15",
                                                                "trueBody": {
                                                                    "id": 5099,
                                                                    "nodeType": "Block",
                                                                    "src": "13130:4127:15",
                                                                    "statements": [
                                                                        {
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "arguments": [
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "id": 4736,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "UnaryOperation",
                                                                                        "operator": "!",
                                                                                        "prefix": true,
                                                                                        "src": "13193:16:15",
                                                                                        "subExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "baseExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 4733,
                                                                                                "name": "_lock",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 3711,
                                                                                                "src": "13194:5:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                                                                    "typeString": "mapping(bytes32 => bool)"
                                                                                                }
                                                                                            },
                                                                                            "id": 4735,
                                                                                            "indexExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "hexValue": "72656465656d",
                                                                                                "id": 4734,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": true,
                                                                                                "kind": "string",
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "Literal",
                                                                                                "src": "13200:8:15",
                                                                                                "subdenomination": null,
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_stringliteral_26ef0a97332ad048ac544d8dfacdd43e128b9816d599fdd0310960904fa18609",
                                                                                                    "typeString": "literal_string \"redeem\""
                                                                                                },
                                                                                                "value": "redeem"
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "IndexAccess",
                                                                                            "src": "13194:15:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_bool",
                                                                                                "typeString": "bool"
                                                                                            }
                                                                                        },
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bool",
                                                                                            "typeString": "bool"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "hexValue": "4c6f636b206f6e20726564656d7074696f6e",
                                                                                        "id": 4737,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": true,
                                                                                        "kind": "string",
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "Literal",
                                                                                        "src": "13211:20:15",
                                                                                        "subdenomination": null,
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_stringliteral_a1bb289ca5093f725927da5725490b6088de689057901f6963d5358c4ab7c40a",
                                                                                            "typeString": "literal_string \"Lock on redemption\""
                                                                                        },
                                                                                        "value": "Lock on redemption"
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_bool",
                                                                                            "typeString": "bool"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_stringliteral_a1bb289ca5093f725927da5725490b6088de689057901f6963d5358c4ab7c40a",
                                                                                            "typeString": "literal_string \"Lock on redemption\""
                                                                                        }
                                                                                    ],
                                                                                    "id": 4732,
                                                                                    "name": "require",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [
                                                                                        13010,
                                                                                        13011
                                                                                    ],
                                                                                    "referencedDeclaration": 13011,
                                                                                    "src": "13185:7:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                                                        "typeString": "function (bool,string memory) pure"
                                                                                    }
                                                                                },
                                                                                "id": 4738,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "kind": "functionCall",
                                                                                "lValueRequested": false,
                                                                                "names": [],
                                                                                "nodeType": "FunctionCall",
                                                                                "src": "13185:47:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_tuple$__$",
                                                                                    "typeString": "tuple()"
                                                                                }
                                                                            },
                                                                            "id": 4739,
                                                                            "nodeType": "ExpressionStatement",
                                                                            "src": "13185:47:15"
                                                                        },
                                                                        {
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "id": 4744,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "leftHandSide": {
                                                                                    "argumentTypes": null,
                                                                                    "baseExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 4740,
                                                                                        "name": "_lock",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 3711,
                                                                                        "src": "13255:5:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                                                            "typeString": "mapping(bytes32 => bool)"
                                                                                        }
                                                                                    },
                                                                                    "id": 4742,
                                                                                    "indexExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "hexValue": "72656465656d",
                                                                                        "id": 4741,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": true,
                                                                                        "kind": "string",
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "Literal",
                                                                                        "src": "13261:8:15",
                                                                                        "subdenomination": null,
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_stringliteral_26ef0a97332ad048ac544d8dfacdd43e128b9816d599fdd0310960904fa18609",
                                                                                            "typeString": "literal_string \"redeem\""
                                                                                        },
                                                                                        "value": "redeem"
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": true,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "13255:15:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bool",
                                                                                        "typeString": "bool"
                                                                                    }
                                                                                },
                                                                                "nodeType": "Assignment",
                                                                                "operator": "=",
                                                                                "rightHandSide": {
                                                                                    "argumentTypes": null,
                                                                                    "hexValue": "74727565",
                                                                                    "id": 4743,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "kind": "bool",
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "Literal",
                                                                                    "src": "13273:4:15",
                                                                                    "subdenomination": null,
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bool",
                                                                                        "typeString": "bool"
                                                                                    },
                                                                                    "value": "true"
                                                                                },
                                                                                "src": "13255:22:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                }
                                                                            },
                                                                            "id": 4745,
                                                                            "nodeType": "ExpressionStatement",
                                                                            "src": "13255:22:15"
                                                                        },
                                                                        {
                                                                            "assignments": [
                                                                                4747
                                                                            ],
                                                                            "declarations": [
                                                                                {
                                                                                    "constant": false,
                                                                                    "id": 4747,
                                                                                    "name": "ref",
                                                                                    "nodeType": "VariableDeclaration",
                                                                                    "scope": 5099,
                                                                                    "src": "13310:11:15",
                                                                                    "stateVariable": false,
                                                                                    "storageLocation": "default",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    "typeName": {
                                                                                        "id": 4746,
                                                                                        "name": "uint256",
                                                                                        "nodeType": "ElementaryTypeName",
                                                                                        "src": "13310:7:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    "value": null,
                                                                                    "visibility": "internal"
                                                                                }
                                                                            ],
                                                                            "id": 4749,
                                                                            "initialValue": {
                                                                                "argumentTypes": null,
                                                                                "id": 4748,
                                                                                "name": "amount",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 4286,
                                                                                "src": "13324:6:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "nodeType": "VariableDeclarationStatement",
                                                                            "src": "13310:20:15"
                                                                        },
                                                                        {
                                                                            "condition": {
                                                                                "argumentTypes": null,
                                                                                "commonType": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                "id": 4752,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "leftExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 4750,
                                                                                    "name": "operation",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 4290,
                                                                                    "src": "13362:9:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bytes32",
                                                                                        "typeString": "bytes32"
                                                                                    }
                                                                                },
                                                                                "nodeType": "BinaryOperation",
                                                                                "operator": "==",
                                                                                "rightExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "hexValue": "72656465656d",
                                                                                    "id": 4751,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "kind": "string",
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "Literal",
                                                                                    "src": "13373:8:15",
                                                                                    "subdenomination": null,
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_stringliteral_26ef0a97332ad048ac544d8dfacdd43e128b9816d599fdd0310960904fa18609",
                                                                                        "typeString": "literal_string \"redeem\""
                                                                                    },
                                                                                    "value": "redeem"
                                                                                },
                                                                                "src": "13362:19:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                }
                                                                            },
                                                                            "falseBody": {
                                                                                "condition": {
                                                                                    "argumentTypes": null,
                                                                                    "commonType": {
                                                                                        "typeIdentifier": "t_bytes32",
                                                                                        "typeString": "bytes32"
                                                                                    },
                                                                                    "id": 4931,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "leftExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 4929,
                                                                                        "name": "operation",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 4290,
                                                                                        "src": "15552:9:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        }
                                                                                    },
                                                                                    "nodeType": "BinaryOperation",
                                                                                    "operator": "==",
                                                                                    "rightExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "hexValue": "7472616e73666572",
                                                                                        "id": 4930,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": true,
                                                                                        "kind": "string",
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "Literal",
                                                                                        "src": "15563:10:15",
                                                                                        "subdenomination": null,
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_stringliteral_b483afd3f4caedc6eebf44246fe54e38c95e3179a5ec9ea81740eca5b482d12e",
                                                                                            "typeString": "literal_string \"transfer\""
                                                                                        },
                                                                                        "value": "transfer"
                                                                                    },
                                                                                    "src": "15552:21:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bool",
                                                                                        "typeString": "bool"
                                                                                    }
                                                                                },
                                                                                "falseBody": null,
                                                                                "id": 5050,
                                                                                "nodeType": "IfStatement",
                                                                                "src": "15549:1218:15",
                                                                                "trueBody": {
                                                                                    "id": 5049,
                                                                                    "nodeType": "Block",
                                                                                    "src": "15574:1193:15",
                                                                                    "statements": [
                                                                                        {
                                                                                            "expression": {
                                                                                                "argumentTypes": null,
                                                                                                "arguments": [
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4933,
                                                                                                        "name": "party",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4288,
                                                                                                        "src": "15671:5:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "expression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4934,
                                                                                                                    "name": "_deposits",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                    "src": "15678:9:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                        "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4936,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4935,
                                                                                                                    "name": "party",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                    "src": "15688:5:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "15678:16:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                                    "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4940,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4937,
                                                                                                                    "name": "currencies",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                    "src": "15695:10:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                        "typeString": "bytes32[] storage ref"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4939,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4938,
                                                                                                                    "name": "i",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                    "src": "15706:1:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "15695:13:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                    "typeString": "bytes32"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "15678:31:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                                "typeString": "struct Cash.deposit storage ref"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4941,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "memberName": "issuedAmount",
                                                                                                        "nodeType": "MemberAccess",
                                                                                                        "referencedDeclaration": 3643,
                                                                                                        "src": "15678:44:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "id": 4932,
                                                                                                    "name": "_burn",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 12462,
                                                                                                    "src": "15665:5:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                                                                        "typeString": "function (address,uint256)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 4942,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "kind": "functionCall",
                                                                                                "lValueRequested": false,
                                                                                                "names": [],
                                                                                                "nodeType": "FunctionCall",
                                                                                                "src": "15665:58:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_tuple$__$",
                                                                                                    "typeString": "tuple()"
                                                                                                }
                                                                                            },
                                                                                            "id": 4943,
                                                                                            "nodeType": "ExpressionStatement",
                                                                                            "src": "15665:58:15"
                                                                                        },
                                                                                        {
                                                                                            "expression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 4970,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "leftHandSide": {
                                                                                                    "argumentTypes": null,
                                                                                                    "components": [
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4944,
                                                                                                            "name": "amount",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 4286,
                                                                                                            "src": "15866:6:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        },
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4945,
                                                                                                            "name": "value",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 4342,
                                                                                                            "src": "15874:5:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        }
                                                                                                    ],
                                                                                                    "id": 4946,
                                                                                                    "isConstant": false,
                                                                                                    "isInlineArray": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": true,
                                                                                                    "nodeType": "TupleExpression",
                                                                                                    "src": "15865:15:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
                                                                                                        "typeString": "tuple(uint256,uint256)"
                                                                                                    }
                                                                                                },
                                                                                                "nodeType": "Assignment",
                                                                                                "operator": "=",
                                                                                                "rightHandSide": {
                                                                                                    "argumentTypes": null,
                                                                                                    "arguments": [
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4948,
                                                                                                            "name": "party",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 4288,
                                                                                                            "src": "15890:5:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            }
                                                                                                        },
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "expression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "baseExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4949,
                                                                                                                        "name": "_deposits",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 3659,
                                                                                                                        "src": "15897:9:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                            "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 4951,
                                                                                                                    "indexExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4950,
                                                                                                                        "name": "party",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 4288,
                                                                                                                        "src": "15907:5:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                    "src": "15897:16:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                                        "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4955,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "baseExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4952,
                                                                                                                        "name": "currencies",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 3649,
                                                                                                                        "src": "15914:10:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                            "typeString": "bytes32[] storage ref"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 4954,
                                                                                                                    "indexExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4953,
                                                                                                                        "name": "i",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 4307,
                                                                                                                        "src": "15925:1:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                    "src": "15914:13:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                                        "typeString": "bytes32"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "15897:31:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                                    "typeString": "struct Cash.deposit storage ref"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4956,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "memberName": "issuedAmount",
                                                                                                            "nodeType": "MemberAccess",
                                                                                                            "referencedDeclaration": 3643,
                                                                                                            "src": "15897:44:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        },
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "expression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "baseExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4957,
                                                                                                                        "name": "_deposits",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 3659,
                                                                                                                        "src": "15943:9:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                            "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 4959,
                                                                                                                    "indexExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4958,
                                                                                                                        "name": "party",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 4288,
                                                                                                                        "src": "15953:5:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                    "src": "15943:16:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                                        "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4963,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "baseExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4960,
                                                                                                                        "name": "currencies",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 3649,
                                                                                                                        "src": "15960:10:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                            "typeString": "bytes32[] storage ref"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 4962,
                                                                                                                    "indexExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4961,
                                                                                                                        "name": "i",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 4307,
                                                                                                                        "src": "15971:1:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                    "src": "15960:13:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                                        "typeString": "bytes32"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "15943:31:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                                    "typeString": "struct Cash.deposit storage ref"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4964,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "memberName": "depositAmount",
                                                                                                            "nodeType": "MemberAccess",
                                                                                                            "referencedDeclaration": 3641,
                                                                                                            "src": "15943:45:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        },
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4965,
                                                                                                                "name": "currencies",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 3649,
                                                                                                                "src": "15990:10:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                    "typeString": "bytes32[] storage ref"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4967,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4966,
                                                                                                                "name": "i",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 4307,
                                                                                                                "src": "16001:1:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "15990:13:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                                "typeString": "bytes32"
                                                                                                            }
                                                                                                        },
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexValue": "7472616e73666572",
                                                                                                            "id": 4968,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "kind": "string",
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "Literal",
                                                                                                            "src": "16005:10:15",
                                                                                                            "subdenomination": null,
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_stringliteral_b483afd3f4caedc6eebf44246fe54e38c95e3179a5ec9ea81740eca5b482d12e",
                                                                                                                "typeString": "literal_string \"transfer\""
                                                                                                            },
                                                                                                            "value": "transfer"
                                                                                                        }
                                                                                                    ],
                                                                                                    "expression": {
                                                                                                        "argumentTypes": [
                                                                                                            {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            },
                                                                                                            {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            },
                                                                                                            {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            },
                                                                                                            {
                                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                                "typeString": "bytes32"
                                                                                                            },
                                                                                                            {
                                                                                                                "typeIdentifier": "t_stringliteral_b483afd3f4caedc6eebf44246fe54e38c95e3179a5ec9ea81740eca5b482d12e",
                                                                                                                "typeString": "literal_string \"transfer\""
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4947,
                                                                                                        "name": "payFee",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 5595,
                                                                                                        "src": "15883:6:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$_t_uint256_$",
                                                                                                            "typeString": "function (address,uint256,uint256,bytes32,bytes32) returns (uint256,uint256)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4969,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "kind": "functionCall",
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [],
                                                                                                    "nodeType": "FunctionCall",
                                                                                                    "src": "15883:133:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
                                                                                                        "typeString": "tuple(uint256,uint256)"
                                                                                                    }
                                                                                                },
                                                                                                "src": "15865:151:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_tuple$__$",
                                                                                                    "typeString": "tuple()"
                                                                                                }
                                                                                            },
                                                                                            "id": 4971,
                                                                                            "nodeType": "ExpressionStatement",
                                                                                            "src": "15865:151:15"
                                                                                        },
                                                                                        {
                                                                                            "expression": {
                                                                                                "argumentTypes": null,
                                                                                                "arguments": [
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4973,
                                                                                                        "name": "receiver",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4292,
                                                                                                        "src": "16094:8:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4974,
                                                                                                        "name": "amount",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4286,
                                                                                                        "src": "16104:6:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "id": 4972,
                                                                                                    "name": "_mint",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 12418,
                                                                                                    "src": "16088:5:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                                                                        "typeString": "function (address,uint256)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 4975,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "kind": "functionCall",
                                                                                                "lValueRequested": false,
                                                                                                "names": [],
                                                                                                "nodeType": "FunctionCall",
                                                                                                "src": "16088:23:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_tuple$__$",
                                                                                                    "typeString": "tuple()"
                                                                                                }
                                                                                            },
                                                                                            "id": 4976,
                                                                                            "nodeType": "ExpressionStatement",
                                                                                            "src": "16088:23:15"
                                                                                        },
                                                                                        {
                                                                                            "expression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 4997,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "leftHandSide": {
                                                                                                    "argumentTypes": null,
                                                                                                    "expression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4977,
                                                                                                                "name": "_deposits",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 3659,
                                                                                                                "src": "16183:9:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                    "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4982,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4978,
                                                                                                                "name": "receiver",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 4292,
                                                                                                                "src": "16193:8:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "16183:19:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                                "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4983,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4979,
                                                                                                                "name": "currencies",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 3649,
                                                                                                                "src": "16203:10:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                    "typeString": "bytes32[] storage ref"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4981,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4980,
                                                                                                                "name": "i",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 4307,
                                                                                                                "src": "16214:1:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "16203:13:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                                "typeString": "bytes32"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "16183:34:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                            "typeString": "struct Cash.deposit storage ref"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4984,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": true,
                                                                                                    "memberName": "depositAmount",
                                                                                                    "nodeType": "MemberAccess",
                                                                                                    "referencedDeclaration": 3641,
                                                                                                    "src": "16183:48:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                "nodeType": "Assignment",
                                                                                                "operator": "=",
                                                                                                "rightHandSide": {
                                                                                                    "argumentTypes": null,
                                                                                                    "arguments": [
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "expression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "baseExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4987,
                                                                                                                        "name": "_deposits",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 3659,
                                                                                                                        "src": "16243:9:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                            "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 4989,
                                                                                                                    "indexExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4988,
                                                                                                                        "name": "receiver",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 4292,
                                                                                                                        "src": "16253:8:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                    "src": "16243:19:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                                        "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4993,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "baseExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4990,
                                                                                                                        "name": "currencies",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 3649,
                                                                                                                        "src": "16263:10:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                            "typeString": "bytes32[] storage ref"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 4992,
                                                                                                                    "indexExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4991,
                                                                                                                        "name": "i",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 4307,
                                                                                                                        "src": "16274:1:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                    "src": "16263:13:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                                        "typeString": "bytes32"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "16243:34:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                                    "typeString": "struct Cash.deposit storage ref"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4994,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "memberName": "depositAmount",
                                                                                                            "nodeType": "MemberAccess",
                                                                                                            "referencedDeclaration": 3641,
                                                                                                            "src": "16243:48:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        },
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4995,
                                                                                                            "name": "value",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 4342,
                                                                                                            "src": "16293:5:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        }
                                                                                                    ],
                                                                                                    "expression": {
                                                                                                        "argumentTypes": [
                                                                                                            {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            },
                                                                                                            {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        ],
                                                                                                        "expression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4985,
                                                                                                            "name": "Math",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 10483,
                                                                                                            "src": "16234:4:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                                                                "typeString": "type(library Math)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4986,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "memberName": "add",
                                                                                                        "nodeType": "MemberAccess",
                                                                                                        "referencedDeclaration": 10236,
                                                                                                        "src": "16234:8:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4996,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "kind": "functionCall",
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [],
                                                                                                    "nodeType": "FunctionCall",
                                                                                                    "src": "16234:65:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                "src": "16183:116:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "id": 4998,
                                                                                            "nodeType": "ExpressionStatement",
                                                                                            "src": "16183:116:15"
                                                                                        },
                                                                                        {
                                                                                            "expression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 5019,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "leftHandSide": {
                                                                                                    "argumentTypes": null,
                                                                                                    "expression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4999,
                                                                                                                "name": "_deposits",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 3659,
                                                                                                                "src": "16377:9:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                    "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 5004,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 5000,
                                                                                                                "name": "receiver",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 4292,
                                                                                                                "src": "16387:8:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "16377:19:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                                "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 5005,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 5001,
                                                                                                                "name": "currencies",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 3649,
                                                                                                                "src": "16397:10:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                    "typeString": "bytes32[] storage ref"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 5003,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 5002,
                                                                                                                "name": "i",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 4307,
                                                                                                                "src": "16408:1:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "16397:13:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                                "typeString": "bytes32"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "16377:34:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                            "typeString": "struct Cash.deposit storage ref"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 5006,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": true,
                                                                                                    "memberName": "issuedAmount",
                                                                                                    "nodeType": "MemberAccess",
                                                                                                    "referencedDeclaration": 3643,
                                                                                                    "src": "16377:47:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                "nodeType": "Assignment",
                                                                                                "operator": "=",
                                                                                                "rightHandSide": {
                                                                                                    "argumentTypes": null,
                                                                                                    "arguments": [
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "expression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "baseExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 5009,
                                                                                                                        "name": "_deposits",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 3659,
                                                                                                                        "src": "16436:9:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                            "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 5011,
                                                                                                                    "indexExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 5010,
                                                                                                                        "name": "receiver",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 4292,
                                                                                                                        "src": "16446:8:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                    "src": "16436:19:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                                        "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 5015,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "baseExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 5012,
                                                                                                                        "name": "currencies",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 3649,
                                                                                                                        "src": "16456:10:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                            "typeString": "bytes32[] storage ref"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 5014,
                                                                                                                    "indexExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 5013,
                                                                                                                        "name": "i",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 4307,
                                                                                                                        "src": "16467:1:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                    "src": "16456:13:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                                        "typeString": "bytes32"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "16436:34:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                                    "typeString": "struct Cash.deposit storage ref"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 5016,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "memberName": "issuedAmount",
                                                                                                            "nodeType": "MemberAccess",
                                                                                                            "referencedDeclaration": 3643,
                                                                                                            "src": "16436:47:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        },
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 5017,
                                                                                                            "name": "amount",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 4286,
                                                                                                            "src": "16485:6:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        }
                                                                                                    ],
                                                                                                    "expression": {
                                                                                                        "argumentTypes": [
                                                                                                            {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            },
                                                                                                            {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        ],
                                                                                                        "expression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 5007,
                                                                                                            "name": "Math",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 10483,
                                                                                                            "src": "16427:4:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                                                                "typeString": "type(library Math)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 5008,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "memberName": "add",
                                                                                                        "nodeType": "MemberAccess",
                                                                                                        "referencedDeclaration": 10236,
                                                                                                        "src": "16427:8:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 5018,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "kind": "functionCall",
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [],
                                                                                                    "nodeType": "FunctionCall",
                                                                                                    "src": "16427:65:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                "src": "16377:115:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "id": 5020,
                                                                                            "nodeType": "ExpressionStatement",
                                                                                            "src": "16377:115:15"
                                                                                        },
                                                                                        {
                                                                                            "expression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 5037,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "leftHandSide": {
                                                                                                    "argumentTypes": null,
                                                                                                    "expression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 5021,
                                                                                                                "name": "_deposits",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 3659,
                                                                                                                "src": "16564:9:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                    "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 5026,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 5022,
                                                                                                                "name": "receiver",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 4292,
                                                                                                                "src": "16574:8:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "16564:19:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                                "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 5027,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 5023,
                                                                                                                "name": "currencies",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 3649,
                                                                                                                "src": "16584:10:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                    "typeString": "bytes32[] storage ref"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 5025,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 5024,
                                                                                                                "name": "i",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 4307,
                                                                                                                "src": "16595:1:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "16584:13:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                                "typeString": "bytes32"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "16564:34:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                            "typeString": "struct Cash.deposit storage ref"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 5028,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": true,
                                                                                                    "memberName": "depositor",
                                                                                                    "nodeType": "MemberAccess",
                                                                                                    "referencedDeclaration": 3645,
                                                                                                    "src": "16564:44:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                "nodeType": "Assignment",
                                                                                                "operator": "=",
                                                                                                "rightHandSide": {
                                                                                                    "argumentTypes": null,
                                                                                                    "expression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 5029,
                                                                                                                "name": "_deposits",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 3659,
                                                                                                                "src": "16611:9:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                    "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 5031,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 5030,
                                                                                                                "name": "party",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 4288,
                                                                                                                "src": "16621:5:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "16611:16:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                                "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 5035,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 5032,
                                                                                                                "name": "currencies",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 3649,
                                                                                                                "src": "16628:10:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                    "typeString": "bytes32[] storage ref"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 5034,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 5033,
                                                                                                                "name": "i",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 4307,
                                                                                                                "src": "16639:1:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "16628:13:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                                "typeString": "bytes32"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "16611:31:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                            "typeString": "struct Cash.deposit storage ref"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 5036,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "memberName": "depositor",
                                                                                                    "nodeType": "MemberAccess",
                                                                                                    "referencedDeclaration": 3645,
                                                                                                    "src": "16611:41:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                "src": "16564:88:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            "id": 5038,
                                                                                            "nodeType": "ExpressionStatement",
                                                                                            "src": "16564:88:15"
                                                                                        },
                                                                                        {
                                                                                            "eventCall": {
                                                                                                "argumentTypes": null,
                                                                                                "arguments": [
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 5040,
                                                                                                        "name": "party",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4288,
                                                                                                        "src": "16697:5:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 5041,
                                                                                                        "name": "receiver",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4292,
                                                                                                        "src": "16704:8:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 5042,
                                                                                                            "name": "currencies",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 3649,
                                                                                                            "src": "16714:10:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                "typeString": "bytes32[] storage ref"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 5044,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 5043,
                                                                                                            "name": "i",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 4307,
                                                                                                            "src": "16725:1:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "16714:13:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 5045,
                                                                                                        "name": "amount",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4286,
                                                                                                        "src": "16729:6:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 5046,
                                                                                                        "name": "value",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4342,
                                                                                                        "src": "16737:5:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "id": 5039,
                                                                                                    "name": "CashTransfer",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 3707,
                                                                                                    "src": "16684:12:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$",
                                                                                                        "typeString": "function (address,address,bytes32,uint256,uint256)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 5047,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "kind": "functionCall",
                                                                                                "lValueRequested": false,
                                                                                                "names": [],
                                                                                                "nodeType": "FunctionCall",
                                                                                                "src": "16684:59:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_tuple$__$",
                                                                                                    "typeString": "tuple()"
                                                                                                }
                                                                                            },
                                                                                            "id": 5048,
                                                                                            "nodeType": "EmitStatement",
                                                                                            "src": "16679:64:15"
                                                                                        }
                                                                                    ]
                                                                                }
                                                                            },
                                                                            "id": 5051,
                                                                            "nodeType": "IfStatement",
                                                                            "src": "13359:3408:15",
                                                                            "trueBody": {
                                                                                "id": 4928,
                                                                                "nodeType": "Block",
                                                                                "src": "13382:2140:15",
                                                                                "statements": [
                                                                                    {
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "arguments": [
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4754,
                                                                                                    "name": "party",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4288,
                                                                                                    "src": "13463:5:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "expression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4755,
                                                                                                                "name": "_deposits",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 3659,
                                                                                                                "src": "13470:9:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                    "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4757,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4756,
                                                                                                                "name": "party",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 4288,
                                                                                                                "src": "13480:5:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "13470:16:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                                "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4761,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4758,
                                                                                                                "name": "currencies",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 3649,
                                                                                                                "src": "13487:10:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                    "typeString": "bytes32[] storage ref"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4760,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4759,
                                                                                                                "name": "i",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 4307,
                                                                                                                "src": "13498:1:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "13487:13:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                                "typeString": "bytes32"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "13470:31:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                            "typeString": "struct Cash.deposit storage ref"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4762,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "memberName": "issuedAmount",
                                                                                                    "nodeType": "MemberAccess",
                                                                                                    "referencedDeclaration": 3643,
                                                                                                    "src": "13470:44:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                }
                                                                                            ],
                                                                                            "expression": {
                                                                                                "argumentTypes": [
                                                                                                    {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4753,
                                                                                                "name": "_burn",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 12462,
                                                                                                "src": "13457:5:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                                                                    "typeString": "function (address,uint256)"
                                                                                                }
                                                                                            },
                                                                                            "id": 4763,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "kind": "functionCall",
                                                                                            "lValueRequested": false,
                                                                                            "names": [],
                                                                                            "nodeType": "FunctionCall",
                                                                                            "src": "13457:58:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_tuple$__$",
                                                                                                "typeString": "tuple()"
                                                                                            }
                                                                                        },
                                                                                        "id": 4764,
                                                                                        "nodeType": "ExpressionStatement",
                                                                                        "src": "13457:58:15"
                                                                                    },
                                                                                    {
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 4791,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "leftHandSide": {
                                                                                                "argumentTypes": null,
                                                                                                "components": [
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4765,
                                                                                                        "name": "amount",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4286,
                                                                                                        "src": "13644:6:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4766,
                                                                                                        "name": "value",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4342,
                                                                                                        "src": "13652:5:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4767,
                                                                                                "isConstant": false,
                                                                                                "isInlineArray": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": true,
                                                                                                "nodeType": "TupleExpression",
                                                                                                "src": "13643:15:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
                                                                                                    "typeString": "tuple(uint256,uint256)"
                                                                                                }
                                                                                            },
                                                                                            "nodeType": "Assignment",
                                                                                            "operator": "=",
                                                                                            "rightHandSide": {
                                                                                                "argumentTypes": null,
                                                                                                "arguments": [
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4769,
                                                                                                        "name": "party",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4288,
                                                                                                        "src": "13668:5:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "expression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4770,
                                                                                                                    "name": "_deposits",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                    "src": "13675:9:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                        "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4772,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4771,
                                                                                                                    "name": "party",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                    "src": "13685:5:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "13675:16:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                                    "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4776,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4773,
                                                                                                                    "name": "currencies",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                    "src": "13692:10:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                        "typeString": "bytes32[] storage ref"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4775,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4774,
                                                                                                                    "name": "i",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                    "src": "13703:1:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "13692:13:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                    "typeString": "bytes32"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "13675:31:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                                "typeString": "struct Cash.deposit storage ref"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4777,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "memberName": "issuedAmount",
                                                                                                        "nodeType": "MemberAccess",
                                                                                                        "referencedDeclaration": 3643,
                                                                                                        "src": "13675:44:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "expression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4778,
                                                                                                                    "name": "_deposits",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                    "src": "13721:9:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                        "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4780,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4779,
                                                                                                                    "name": "party",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                    "src": "13731:5:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "13721:16:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                                    "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4784,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4781,
                                                                                                                    "name": "currencies",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                    "src": "13738:10:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                        "typeString": "bytes32[] storage ref"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4783,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4782,
                                                                                                                    "name": "i",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                    "src": "13749:1:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "13738:13:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                    "typeString": "bytes32"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "13721:31:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                                "typeString": "struct Cash.deposit storage ref"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4785,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "memberName": "depositAmount",
                                                                                                        "nodeType": "MemberAccess",
                                                                                                        "referencedDeclaration": 3641,
                                                                                                        "src": "13721:45:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4786,
                                                                                                            "name": "currencies",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 3649,
                                                                                                            "src": "13768:10:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                "typeString": "bytes32[] storage ref"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4788,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4787,
                                                                                                            "name": "i",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 4307,
                                                                                                            "src": "13779:1:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "13768:13:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "hexValue": "77697468647261776c",
                                                                                                        "id": 4789,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": true,
                                                                                                        "kind": "string",
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "Literal",
                                                                                                        "src": "13783:11:15",
                                                                                                        "subdenomination": null,
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_stringliteral_014ab85ea8e748688cc6784b5e57ac1916c5079c4b0ea7171a3ee030794a44d0",
                                                                                                            "typeString": "literal_string \"withdrawl\""
                                                                                                        },
                                                                                                        "value": "withdrawl"
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_stringliteral_014ab85ea8e748688cc6784b5e57ac1916c5079c4b0ea7171a3ee030794a44d0",
                                                                                                            "typeString": "literal_string \"withdrawl\""
                                                                                                        }
                                                                                                    ],
                                                                                                    "id": 4768,
                                                                                                    "name": "payFee",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 5595,
                                                                                                    "src": "13661:6:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$_t_uint256_$",
                                                                                                        "typeString": "function (address,uint256,uint256,bytes32,bytes32) returns (uint256,uint256)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 4790,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "kind": "functionCall",
                                                                                                "lValueRequested": false,
                                                                                                "names": [],
                                                                                                "nodeType": "FunctionCall",
                                                                                                "src": "13661:134:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
                                                                                                    "typeString": "tuple(uint256,uint256)"
                                                                                                }
                                                                                            },
                                                                                            "src": "13643:152:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_tuple$__$",
                                                                                                "typeString": "tuple()"
                                                                                            }
                                                                                        },
                                                                                        "id": 4792,
                                                                                        "nodeType": "ExpressionStatement",
                                                                                        "src": "13643:152:15"
                                                                                    },
                                                                                    {
                                                                                        "condition": {
                                                                                            "argumentTypes": null,
                                                                                            "commonType": {
                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                "typeString": "bytes32"
                                                                                            },
                                                                                            "id": 4797,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "leftExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4793,
                                                                                                    "name": "currencies",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 3649,
                                                                                                    "src": "13951:10:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                        "typeString": "bytes32[] storage ref"
                                                                                                    }
                                                                                                },
                                                                                                "id": 4795,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4794,
                                                                                                    "name": "i",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4307,
                                                                                                    "src": "13962:1:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "13951:13:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                }
                                                                                            },
                                                                                            "nodeType": "BinaryOperation",
                                                                                            "operator": "==",
                                                                                            "rightExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "hexValue": "6574686572",
                                                                                                "id": 4796,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": true,
                                                                                                "kind": "string",
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "Literal",
                                                                                                "src": "13966:7:15",
                                                                                                "subdenomination": null,
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_stringliteral_13730b0d8e1bdbdc293b62ba010b1eede56b412ea2980defabe3d0b6c7844c3a",
                                                                                                    "typeString": "literal_string \"ether\""
                                                                                                },
                                                                                                "value": "ether"
                                                                                            },
                                                                                            "src": "13951:22:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_bool",
                                                                                                "typeString": "bool"
                                                                                            }
                                                                                        },
                                                                                        "falseBody": {
                                                                                            "condition": {
                                                                                                "argumentTypes": null,
                                                                                                "commonType": {
                                                                                                    "typeIdentifier": "t_bool",
                                                                                                    "typeString": "bool"
                                                                                                },
                                                                                                "id": 4815,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "leftExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "arguments": [
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4810,
                                                                                                                "name": "currencies",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 3649,
                                                                                                                "src": "14140:10:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                    "typeString": "bytes32[] storage ref"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4812,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4811,
                                                                                                                "name": "i",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 4307,
                                                                                                                "src": "14151:1:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "14140:13:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                                "typeString": "bytes32"
                                                                                                            }
                                                                                                        }
                                                                                                    ],
                                                                                                    "expression": {
                                                                                                        "argumentTypes": [
                                                                                                            {
                                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                                "typeString": "bytes32"
                                                                                                            }
                                                                                                        ],
                                                                                                        "expression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4808,
                                                                                                            "name": "_factory",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 3633,
                                                                                                            "src": "14110:8:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                                                                "typeString": "contract ViaFactory"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4809,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "memberName": "checkSupportForToken",
                                                                                                        "nodeType": "MemberAccess",
                                                                                                        "referencedDeclaration": 8394,
                                                                                                        "src": "14110:29:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                                                                                                            "typeString": "function (bytes32) view external returns (bool)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4813,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "kind": "functionCall",
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [],
                                                                                                    "nodeType": "FunctionCall",
                                                                                                    "src": "14110:44:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_bool",
                                                                                                        "typeString": "bool"
                                                                                                    }
                                                                                                },
                                                                                                "nodeType": "BinaryOperation",
                                                                                                "operator": "==",
                                                                                                "rightExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexValue": "74727565",
                                                                                                    "id": 4814,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "kind": "bool",
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "Literal",
                                                                                                    "src": "14156:4:15",
                                                                                                    "subdenomination": null,
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_bool",
                                                                                                        "typeString": "bool"
                                                                                                    },
                                                                                                    "value": "true"
                                                                                                },
                                                                                                "src": "14110:50:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_bool",
                                                                                                    "typeString": "bool"
                                                                                                }
                                                                                            },
                                                                                            "falseBody": {
                                                                                                "condition": {
                                                                                                    "argumentTypes": null,
                                                                                                    "commonType": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    },
                                                                                                    "id": 4844,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "leftExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "arguments": [
                                                                                                            {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4836,
                                                                                                                    "name": "currencies",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                    "src": "14460:10:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                        "typeString": "bytes32[] storage ref"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4838,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4837,
                                                                                                                    "name": "i",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                    "src": "14471:1:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "14460:13:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                    "typeString": "bytes32"
                                                                                                                }
                                                                                                            },
                                                                                                            {
                                                                                                                "argumentTypes": null,
                                                                                                                "hexValue": "56696143617368",
                                                                                                                "id": 4839,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": true,
                                                                                                                "kind": "string",
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "Literal",
                                                                                                                "src": "14475:9:15",
                                                                                                                "subdenomination": null,
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                                    "typeString": "literal_string \"ViaCash\""
                                                                                                                },
                                                                                                                "value": "ViaCash"
                                                                                                            }
                                                                                                        ],
                                                                                                        "expression": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                    "typeString": "bytes32"
                                                                                                                },
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                                    "typeString": "literal_string \"ViaCash\""
                                                                                                                }
                                                                                                            ],
                                                                                                            "expression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4834,
                                                                                                                "name": "_factory",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 3633,
                                                                                                                "src": "14432:8:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                                                                    "typeString": "contract ViaFactory"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4835,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "memberName": "getTokenByNameType",
                                                                                                            "nodeType": "MemberAccess",
                                                                                                            "referencedDeclaration": 8276,
                                                                                                            "src": "14432:27:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                                                                                                                "typeString": "function (bytes32,bytes32) view external returns (address)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4840,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": false,
                                                                                                        "kind": "functionCall",
                                                                                                        "lValueRequested": false,
                                                                                                        "names": [],
                                                                                                        "nodeType": "FunctionCall",
                                                                                                        "src": "14432:53:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    "nodeType": "BinaryOperation",
                                                                                                    "operator": "!=",
                                                                                                    "rightExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "arguments": [
                                                                                                            {
                                                                                                                "argumentTypes": null,
                                                                                                                "hexValue": "307830",
                                                                                                                "id": 4842,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": true,
                                                                                                                "kind": "number",
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "Literal",
                                                                                                                "src": "14495:3:15",
                                                                                                                "subdenomination": null,
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                                                                    "typeString": "int_const 0"
                                                                                                                },
                                                                                                                "value": "0x0"
                                                                                                            }
                                                                                                        ],
                                                                                                        "expression": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                                                                    "typeString": "int_const 0"
                                                                                                                }
                                                                                                            ],
                                                                                                            "id": 4841,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "ElementaryTypeNameExpression",
                                                                                                            "src": "14487:7:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                                                                "typeString": "type(address)"
                                                                                                            },
                                                                                                            "typeName": "address"
                                                                                                        },
                                                                                                        "id": 4843,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": true,
                                                                                                        "kind": "typeConversion",
                                                                                                        "lValueRequested": false,
                                                                                                        "names": [],
                                                                                                        "nodeType": "FunctionCall",
                                                                                                        "src": "14487:12:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address_payable",
                                                                                                            "typeString": "address payable"
                                                                                                        }
                                                                                                    },
                                                                                                    "src": "14432:67:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_bool",
                                                                                                        "typeString": "bool"
                                                                                                    }
                                                                                                },
                                                                                                "falseBody": {
                                                                                                    "condition": {
                                                                                                        "argumentTypes": null,
                                                                                                        "commonType": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        "id": 4885,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "leftExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4879,
                                                                                                                "name": "currencyIndex",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 3653,
                                                                                                                "src": "15004:13:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                                                                                    "typeString": "mapping(bytes32 => uint256)"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4883,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4880,
                                                                                                                    "name": "currencies",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                    "src": "15018:10:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                        "typeString": "bytes32[] storage ref"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4882,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4881,
                                                                                                                    "name": "i",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                    "src": "15029:1:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "15018:13:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                    "typeString": "bytes32"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "15004:28:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        },
                                                                                                        "nodeType": "BinaryOperation",
                                                                                                        "operator": "!=",
                                                                                                        "rightExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexValue": "30",
                                                                                                            "id": 4884,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "kind": "number",
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "Literal",
                                                                                                            "src": "15034:1:15",
                                                                                                            "subdenomination": null,
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                                                                "typeString": "int_const 0"
                                                                                                            },
                                                                                                            "value": "0"
                                                                                                        },
                                                                                                        "src": "15004:31:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_bool",
                                                                                                            "typeString": "bool"
                                                                                                        }
                                                                                                    },
                                                                                                    "falseBody": null,
                                                                                                    "id": 4905,
                                                                                                    "nodeType": "IfStatement",
                                                                                                    "src": "15001:304:15",
                                                                                                    "trueBody": {
                                                                                                        "id": 4904,
                                                                                                        "nodeType": "Block",
                                                                                                        "src": "15036:269:15",
                                                                                                        "statements": [
                                                                                                            {
                                                                                                                "expression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "arguments": [
                                                                                                                        {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "expression": {
                                                                                                                                "argumentTypes": null,
                                                                                                                                "baseExpression": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "baseExpression": {
                                                                                                                                        "argumentTypes": null,
                                                                                                                                        "id": 4889,
                                                                                                                                        "name": "_deposits",
                                                                                                                                        "nodeType": "Identifier",
                                                                                                                                        "overloadedDeclarations": [],
                                                                                                                                        "referencedDeclaration": 3659,
                                                                                                                                        "src": "15206:9:15",
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                                            "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                                                        }
                                                                                                                                    },
                                                                                                                                    "id": 4891,
                                                                                                                                    "indexExpression": {
                                                                                                                                        "argumentTypes": null,
                                                                                                                                        "id": 4890,
                                                                                                                                        "name": "party",
                                                                                                                                        "nodeType": "Identifier",
                                                                                                                                        "overloadedDeclarations": [],
                                                                                                                                        "referencedDeclaration": 4288,
                                                                                                                                        "src": "15216:5:15",
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                            "typeString": "address"
                                                                                                                                        }
                                                                                                                                    },
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                                    "src": "15206:16:15",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                                                        "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "id": 4895,
                                                                                                                                "indexExpression": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "baseExpression": {
                                                                                                                                        "argumentTypes": null,
                                                                                                                                        "id": 4892,
                                                                                                                                        "name": "currencies",
                                                                                                                                        "nodeType": "Identifier",
                                                                                                                                        "overloadedDeclarations": [],
                                                                                                                                        "referencedDeclaration": 3649,
                                                                                                                                        "src": "15223:10:15",
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                                            "typeString": "bytes32[] storage ref"
                                                                                                                                        }
                                                                                                                                    },
                                                                                                                                    "id": 4894,
                                                                                                                                    "indexExpression": {
                                                                                                                                        "argumentTypes": null,
                                                                                                                                        "id": 4893,
                                                                                                                                        "name": "i",
                                                                                                                                        "nodeType": "Identifier",
                                                                                                                                        "overloadedDeclarations": [],
                                                                                                                                        "referencedDeclaration": 4307,
                                                                                                                                        "src": "15234:1:15",
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        }
                                                                                                                                    },
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                                    "src": "15223:13:15",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                                                        "typeString": "bytes32"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "isConstant": false,
                                                                                                                                "isLValue": true,
                                                                                                                                "isPure": false,
                                                                                                                                "lValueRequested": false,
                                                                                                                                "nodeType": "IndexAccess",
                                                                                                                                "src": "15206:31:15",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                                                    "typeString": "struct Cash.deposit storage ref"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "id": 4896,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "memberName": "depositor",
                                                                                                                            "nodeType": "MemberAccess",
                                                                                                                            "referencedDeclaration": 3645,
                                                                                                                            "src": "15206:41:15",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                "typeString": "address"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "id": 4897,
                                                                                                                            "name": "party",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                            "src": "15249:5:15",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                "typeString": "address"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "baseExpression": {
                                                                                                                                "argumentTypes": null,
                                                                                                                                "id": 4898,
                                                                                                                                "name": "currencies",
                                                                                                                                "nodeType": "Identifier",
                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                "referencedDeclaration": 3649,
                                                                                                                                "src": "15256:10:15",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                                    "typeString": "bytes32[] storage ref"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "id": 4900,
                                                                                                                            "indexExpression": {
                                                                                                                                "argumentTypes": null,
                                                                                                                                "id": 4899,
                                                                                                                                "name": "i",
                                                                                                                                "nodeType": "Identifier",
                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                "referencedDeclaration": 4307,
                                                                                                                                "src": "15267:1:15",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "nodeType": "IndexAccess",
                                                                                                                            "src": "15256:13:15",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                                                "typeString": "bytes32"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "id": 4901,
                                                                                                                            "name": "value",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 4342,
                                                                                                                            "src": "15271:5:15",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            }
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "expression": {
                                                                                                                        "argumentTypes": [
                                                                                                                            {
                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                "typeString": "address"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                "typeString": "address"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                                                "typeString": "bytes32"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "expression": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "id": 4886,
                                                                                                                            "name": "_oracle",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 3637,
                                                                                                                            "src": "15191:7:15",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_contract$_ViaOracle_$8427",
                                                                                                                                "typeString": "contract ViaOracle"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 4888,
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": false,
                                                                                                                        "isPure": false,
                                                                                                                        "lValueRequested": false,
                                                                                                                        "memberName": "payOut",
                                                                                                                        "nodeType": "MemberAccess",
                                                                                                                        "referencedDeclaration": 8426,
                                                                                                                        "src": "15191:14:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$returns$__$",
                                                                                                                            "typeString": "function (address,address,bytes32,uint256) external"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 4902,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "kind": "functionCall",
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [],
                                                                                                                    "nodeType": "FunctionCall",
                                                                                                                    "src": "15191:86:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_tuple$__$",
                                                                                                                        "typeString": "tuple()"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4903,
                                                                                                                "nodeType": "ExpressionStatement",
                                                                                                                "src": "15191:86:15"
                                                                                                            }
                                                                                                        ]
                                                                                                    }
                                                                                                },
                                                                                                "id": 4906,
                                                                                                "nodeType": "IfStatement",
                                                                                                "src": "14429:876:15",
                                                                                                "trueBody": {
                                                                                                    "id": 4878,
                                                                                                    "nodeType": "Block",
                                                                                                    "src": "14500:465:15",
                                                                                                    "statements": [
                                                                                                        {
                                                                                                            "assignments": [
                                                                                                                4846
                                                                                                            ],
                                                                                                            "declarations": [
                                                                                                                {
                                                                                                                    "constant": false,
                                                                                                                    "id": 4846,
                                                                                                                    "name": "cashToken",
                                                                                                                    "nodeType": "VariableDeclaration",
                                                                                                                    "scope": 4878,
                                                                                                                    "src": "14600:17:15",
                                                                                                                    "stateVariable": false,
                                                                                                                    "storageLocation": "default",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    },
                                                                                                                    "typeName": {
                                                                                                                        "id": 4845,
                                                                                                                        "name": "address",
                                                                                                                        "nodeType": "ElementaryTypeName",
                                                                                                                        "src": "14600:7:15",
                                                                                                                        "stateMutability": "nonpayable",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "value": null,
                                                                                                                    "visibility": "internal"
                                                                                                                }
                                                                                                            ],
                                                                                                            "id": 4854,
                                                                                                            "initialValue": {
                                                                                                                "argumentTypes": null,
                                                                                                                "arguments": [
                                                                                                                    {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "baseExpression": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "id": 4849,
                                                                                                                            "name": "currencies",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                            "src": "14648:10:15",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                                "typeString": "bytes32[] storage ref"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 4851,
                                                                                                                        "indexExpression": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "id": 4850,
                                                                                                                            "name": "i",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                            "src": "14659:1:15",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": true,
                                                                                                                        "isPure": false,
                                                                                                                        "lValueRequested": false,
                                                                                                                        "nodeType": "IndexAccess",
                                                                                                                        "src": "14648:13:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                                            "typeString": "bytes32"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "hexValue": "56696143617368",
                                                                                                                        "id": 4852,
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": false,
                                                                                                                        "isPure": true,
                                                                                                                        "kind": "string",
                                                                                                                        "lValueRequested": false,
                                                                                                                        "nodeType": "Literal",
                                                                                                                        "src": "14662:9:15",
                                                                                                                        "subdenomination": null,
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                                            "typeString": "literal_string \"ViaCash\""
                                                                                                                        },
                                                                                                                        "value": "ViaCash"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "expression": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                                            "typeString": "bytes32"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                                            "typeString": "literal_string \"ViaCash\""
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "expression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4847,
                                                                                                                        "name": "_factory",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 3633,
                                                                                                                        "src": "14620:8:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                                                                            "typeString": "contract ViaFactory"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 4848,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "memberName": "getTokenByNameType",
                                                                                                                    "nodeType": "MemberAccess",
                                                                                                                    "referencedDeclaration": 8276,
                                                                                                                    "src": "14620:27:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                                                                                                                        "typeString": "function (bytes32,bytes32) view external returns (address)"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4853,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "kind": "functionCall",
                                                                                                                "lValueRequested": false,
                                                                                                                "names": [],
                                                                                                                "nodeType": "FunctionCall",
                                                                                                                "src": "14620:52:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            },
                                                                                                            "nodeType": "VariableDeclarationStatement",
                                                                                                            "src": "14600:72:15"
                                                                                                        },
                                                                                                        {
                                                                                                            "condition": {
                                                                                                                "argumentTypes": null,
                                                                                                                "commonType": {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                },
                                                                                                                "id": 4859,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "leftExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4855,
                                                                                                                    "name": "cashToken",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 4846,
                                                                                                                    "src": "14706:9:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    }
                                                                                                                },
                                                                                                                "nodeType": "BinaryOperation",
                                                                                                                "operator": "==",
                                                                                                                "rightExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "arguments": [
                                                                                                                        {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "id": 4857,
                                                                                                                            "name": "this",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 13077,
                                                                                                                            "src": "14725:4:15",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                                                                "typeString": "contract Cash"
                                                                                                                            }
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "expression": {
                                                                                                                        "argumentTypes": [
                                                                                                                            {
                                                                                                                                "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                                                                "typeString": "contract Cash"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4856,
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": false,
                                                                                                                        "isPure": true,
                                                                                                                        "lValueRequested": false,
                                                                                                                        "nodeType": "ElementaryTypeNameExpression",
                                                                                                                        "src": "14717:7:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_type$_t_address_$",
                                                                                                                            "typeString": "type(address)"
                                                                                                                        },
                                                                                                                        "typeName": "address"
                                                                                                                    },
                                                                                                                    "id": 4858,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "kind": "typeConversion",
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [],
                                                                                                                    "nodeType": "FunctionCall",
                                                                                                                    "src": "14717:13:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_address_payable",
                                                                                                                        "typeString": "address payable"
                                                                                                                    }
                                                                                                                },
                                                                                                                "src": "14706:24:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_bool",
                                                                                                                    "typeString": "bool"
                                                                                                                }
                                                                                                            },
                                                                                                            "falseBody": {
                                                                                                                "expression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "arguments": [
                                                                                                                        {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "id": 4873,
                                                                                                                            "name": "value",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 4342,
                                                                                                                            "src": "14924:5:15",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "id": 4874,
                                                                                                                            "name": "party",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                            "src": "14931:5:15",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                "typeString": "address"
                                                                                                                            }
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "expression": {
                                                                                                                        "argumentTypes": [
                                                                                                                            {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                "typeString": "address"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "expression": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "arguments": [
                                                                                                                                {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "arguments": [
                                                                                                                                        {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "arguments": [
                                                                                                                                                {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "id": 4868,
                                                                                                                                                    "name": "cashToken",
                                                                                                                                                    "nodeType": "Identifier",
                                                                                                                                                    "overloadedDeclarations": [],
                                                                                                                                                    "referencedDeclaration": 4846,
                                                                                                                                                    "src": "14886:9:15",
                                                                                                                                                    "typeDescriptions": {
                                                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                                                        "typeString": "address"
                                                                                                                                                    }
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "expression": {
                                                                                                                                                "argumentTypes": [
                                                                                                                                                    {
                                                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                                                        "typeString": "address"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4867,
                                                                                                                                                "isConstant": false,
                                                                                                                                                "isLValue": false,
                                                                                                                                                "isPure": true,
                                                                                                                                                "lValueRequested": false,
                                                                                                                                                "nodeType": "ElementaryTypeNameExpression",
                                                                                                                                                "src": "14878:7:15",
                                                                                                                                                "typeDescriptions": {
                                                                                                                                                    "typeIdentifier": "t_type$_t_uint160_$",
                                                                                                                                                    "typeString": "type(uint160)"
                                                                                                                                                },
                                                                                                                                                "typeName": "uint160"
                                                                                                                                            },
                                                                                                                                            "id": 4869,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "kind": "typeConversion",
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "names": [],
                                                                                                                                            "nodeType": "FunctionCall",
                                                                                                                                            "src": "14878:18:15",
                                                                                                                                            "typeDescriptions": {
                                                                                                                                                "typeIdentifier": "t_uint160",
                                                                                                                                                "typeString": "uint160"
                                                                                                                                            }
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "expression": {
                                                                                                                                        "argumentTypes": [
                                                                                                                                            {
                                                                                                                                                "typeIdentifier": "t_uint160",
                                                                                                                                                "typeString": "uint160"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4866,
                                                                                                                                        "isConstant": false,
                                                                                                                                        "isLValue": false,
                                                                                                                                        "isPure": true,
                                                                                                                                        "lValueRequested": false,
                                                                                                                                        "nodeType": "ElementaryTypeNameExpression",
                                                                                                                                        "src": "14870:7:15",
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_type$_t_address_$",
                                                                                                                                            "typeString": "type(address)"
                                                                                                                                        },
                                                                                                                                        "typeName": "address"
                                                                                                                                    },
                                                                                                                                    "id": 4870,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "kind": "typeConversion",
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [],
                                                                                                                                    "nodeType": "FunctionCall",
                                                                                                                                    "src": "14870:27:15",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_address_payable",
                                                                                                                                        "typeString": "address payable"
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "expression": {
                                                                                                                                "argumentTypes": [
                                                                                                                                    {
                                                                                                                                        "typeIdentifier": "t_address_payable",
                                                                                                                                        "typeString": "address payable"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4865,
                                                                                                                                "name": "Cash",
                                                                                                                                "nodeType": "Identifier",
                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                "referencedDeclaration": 5750,
                                                                                                                                "src": "14865:4:15",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_type$_t_contract$_Cash_$5750_$",
                                                                                                                                    "typeString": "type(contract Cash)"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "id": 4871,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "kind": "typeConversion",
                                                                                                                            "lValueRequested": false,
                                                                                                                            "names": [],
                                                                                                                            "nodeType": "FunctionCall",
                                                                                                                            "src": "14865:33:15",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                                                                "typeString": "contract Cash"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 4872,
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": false,
                                                                                                                        "isPure": false,
                                                                                                                        "lValueRequested": false,
                                                                                                                        "memberName": "requestDeductFromBalance",
                                                                                                                        "nodeType": "MemberAccess",
                                                                                                                        "referencedDeclaration": 5222,
                                                                                                                        "src": "14865:58:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$returns$_t_uint256_$",
                                                                                                                            "typeString": "function (uint256,address) external returns (uint256)"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 4875,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "kind": "functionCall",
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [],
                                                                                                                    "nodeType": "FunctionCall",
                                                                                                                    "src": "14865:72:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4876,
                                                                                                                "nodeType": "ExpressionStatement",
                                                                                                                "src": "14865:72:15"
                                                                                                            },
                                                                                                            "id": 4877,
                                                                                                            "nodeType": "IfStatement",
                                                                                                            "src": "14703:234:15",
                                                                                                            "trueBody": {
                                                                                                                "expression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "arguments": [
                                                                                                                        {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "id": 4861,
                                                                                                                            "name": "value",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 4342,
                                                                                                                            "src": "14783:5:15",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "id": 4862,
                                                                                                                            "name": "party",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                            "src": "14790:5:15",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                "typeString": "address"
                                                                                                                            }
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "expression": {
                                                                                                                        "argumentTypes": [
                                                                                                                            {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                "typeString": "address"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4860,
                                                                                                                        "name": "deductFromBalance",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 5278,
                                                                                                                        "src": "14765:17:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_uint256_$",
                                                                                                                            "typeString": "function (uint256,address) returns (uint256)"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 4863,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "kind": "functionCall",
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [],
                                                                                                                    "nodeType": "FunctionCall",
                                                                                                                    "src": "14765:31:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4864,
                                                                                                                "nodeType": "ExpressionStatement",
                                                                                                                "src": "14765:31:15"
                                                                                                            }
                                                                                                        }
                                                                                                    ]
                                                                                                }
                                                                                            },
                                                                                            "id": 4907,
                                                                                            "nodeType": "IfStatement",
                                                                                            "src": "14107:1198:15",
                                                                                            "trueBody": {
                                                                                                "id": 4833,
                                                                                                "nodeType": "Block",
                                                                                                "src": "14161:237:15",
                                                                                                "statements": [
                                                                                                    {
                                                                                                        "assignments": [
                                                                                                            4817
                                                                                                        ],
                                                                                                        "declarations": [
                                                                                                            {
                                                                                                                "constant": false,
                                                                                                                "id": 4817,
                                                                                                                "name": "token",
                                                                                                                "nodeType": "VariableDeclaration",
                                                                                                                "scope": 4833,
                                                                                                                "src": "14247:13:15",
                                                                                                                "stateVariable": false,
                                                                                                                "storageLocation": "default",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                },
                                                                                                                "typeName": {
                                                                                                                    "id": 4816,
                                                                                                                    "name": "address",
                                                                                                                    "nodeType": "ElementaryTypeName",
                                                                                                                    "src": "14247:7:15",
                                                                                                                    "stateMutability": "nonpayable",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    }
                                                                                                                },
                                                                                                                "value": null,
                                                                                                                "visibility": "internal"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4824,
                                                                                                        "initialValue": {
                                                                                                            "argumentTypes": null,
                                                                                                            "arguments": [
                                                                                                                {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "baseExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4820,
                                                                                                                        "name": "currencies",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 3649,
                                                                                                                        "src": "14289:10:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                            "typeString": "bytes32[] storage ref"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 4822,
                                                                                                                    "indexExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4821,
                                                                                                                        "name": "i",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 4307,
                                                                                                                        "src": "14300:1:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                    "src": "14289:13:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                                        "typeString": "bytes32"
                                                                                                                    }
                                                                                                                }
                                                                                                            ],
                                                                                                            "expression": {
                                                                                                                "argumentTypes": [
                                                                                                                    {
                                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                                        "typeString": "bytes32"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "expression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4818,
                                                                                                                    "name": "_factory",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 3633,
                                                                                                                    "src": "14263:8:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                                                                        "typeString": "contract ViaFactory"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4819,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "memberName": "getCurrencyToken",
                                                                                                                "nodeType": "MemberAccess",
                                                                                                                "referencedDeclaration": 8401,
                                                                                                                "src": "14263:25:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                                                                                                    "typeString": "function (bytes32) view external returns (address)"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4823,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "kind": "functionCall",
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [],
                                                                                                            "nodeType": "FunctionCall",
                                                                                                            "src": "14263:40:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            }
                                                                                                        },
                                                                                                        "nodeType": "VariableDeclarationStatement",
                                                                                                        "src": "14247:56:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "expression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "arguments": [
                                                                                                                {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4829,
                                                                                                                    "name": "party",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                    "src": "14357:5:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    }
                                                                                                                },
                                                                                                                {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4830,
                                                                                                                    "name": "value",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 4342,
                                                                                                                    "src": "14364:5:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                }
                                                                                                            ],
                                                                                                            "expression": {
                                                                                                                "argumentTypes": [
                                                                                                                    {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "expression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "arguments": [
                                                                                                                        {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "id": 4826,
                                                                                                                            "name": "token",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 4817,
                                                                                                                            "src": "14341:5:15",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                "typeString": "address"
                                                                                                                            }
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "expression": {
                                                                                                                        "argumentTypes": [
                                                                                                                            {
                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                "typeString": "address"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4825,
                                                                                                                        "name": "IERC20",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 409,
                                                                                                                        "src": "14334:6:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_type$_t_contract$_IERC20_$409_$",
                                                                                                                            "typeString": "type(contract IERC20)"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 4827,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "kind": "typeConversion",
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [],
                                                                                                                    "nodeType": "FunctionCall",
                                                                                                                    "src": "14334:13:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_contract$_IERC20_$409",
                                                                                                                        "typeString": "contract IERC20"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4828,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "memberName": "transfer",
                                                                                                                "nodeType": "MemberAccess",
                                                                                                                "referencedDeclaration": 363,
                                                                                                                "src": "14334:22:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                                                                                    "typeString": "function (address,uint256) external returns (bool)"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4831,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "kind": "functionCall",
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [],
                                                                                                            "nodeType": "FunctionCall",
                                                                                                            "src": "14334:36:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_bool",
                                                                                                                "typeString": "bool"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4832,
                                                                                                        "nodeType": "ExpressionStatement",
                                                                                                        "src": "14334:36:15"
                                                                                                    }
                                                                                                ]
                                                                                            }
                                                                                        },
                                                                                        "id": 4908,
                                                                                        "nodeType": "IfStatement",
                                                                                        "src": "13948:1357:15",
                                                                                        "trueBody": {
                                                                                            "id": 4807,
                                                                                            "nodeType": "Block",
                                                                                            "src": "13974:102:15",
                                                                                            "statements": [
                                                                                                {
                                                                                                    "expression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "arguments": [
                                                                                                            {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4804,
                                                                                                                "name": "value",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 4342,
                                                                                                                "src": "14042:5:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            }
                                                                                                        ],
                                                                                                        "expression": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            ],
                                                                                                            "expression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "arguments": [
                                                                                                                    {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "arguments": [
                                                                                                                            {
                                                                                                                                "argumentTypes": null,
                                                                                                                                "id": 4800,
                                                                                                                                "name": "party",
                                                                                                                                "nodeType": "Identifier",
                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                "referencedDeclaration": 4288,
                                                                                                                                "src": "14025:5:15",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                    "typeString": "address"
                                                                                                                                }
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "expression": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                    "typeString": "address"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "id": 4799,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": true,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "nodeType": "ElementaryTypeNameExpression",
                                                                                                                            "src": "14017:7:15",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_type$_t_uint160_$",
                                                                                                                                "typeString": "type(uint160)"
                                                                                                                            },
                                                                                                                            "typeName": "uint160"
                                                                                                                        },
                                                                                                                        "id": 4801,
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": false,
                                                                                                                        "isPure": false,
                                                                                                                        "kind": "typeConversion",
                                                                                                                        "lValueRequested": false,
                                                                                                                        "names": [],
                                                                                                                        "nodeType": "FunctionCall",
                                                                                                                        "src": "14017:14:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_uint160",
                                                                                                                            "typeString": "uint160"
                                                                                                                        }
                                                                                                                    }
                                                                                                                ],
                                                                                                                "expression": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint160",
                                                                                                                            "typeString": "uint160"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "id": 4798,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "ElementaryTypeNameExpression",
                                                                                                                    "src": "14009:7:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_type$_t_address_$",
                                                                                                                        "typeString": "type(address)"
                                                                                                                    },
                                                                                                                    "typeName": "address"
                                                                                                                },
                                                                                                                "id": 4802,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "kind": "typeConversion",
                                                                                                                "lValueRequested": false,
                                                                                                                "names": [],
                                                                                                                "nodeType": "FunctionCall",
                                                                                                                "src": "14009:23:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address_payable",
                                                                                                                    "typeString": "address payable"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4803,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "memberName": "transfer",
                                                                                                            "nodeType": "MemberAccess",
                                                                                                            "referencedDeclaration": null,
                                                                                                            "src": "14009:32:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                                                                                                                "typeString": "function (uint256)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4805,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": false,
                                                                                                        "kind": "functionCall",
                                                                                                        "lValueRequested": false,
                                                                                                        "names": [],
                                                                                                        "nodeType": "FunctionCall",
                                                                                                        "src": "14009:39:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_tuple$__$",
                                                                                                            "typeString": "tuple()"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4806,
                                                                                                    "nodeType": "ExpressionStatement",
                                                                                                    "src": "14009:39:15"
                                                                                                }
                                                                                            ]
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "eventCall": {
                                                                                            "argumentTypes": null,
                                                                                            "arguments": [
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4910,
                                                                                                    "name": "party",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4288,
                                                                                                    "src": "15406:5:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "baseExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4911,
                                                                                                        "name": "currencies",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 3649,
                                                                                                        "src": "15413:10:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                            "typeString": "bytes32[] storage ref"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4913,
                                                                                                    "indexExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4912,
                                                                                                        "name": "i",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4307,
                                                                                                        "src": "15424:1:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "15413:13:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                        "typeString": "bytes32"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4914,
                                                                                                    "name": "value",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4342,
                                                                                                    "src": "15428:5:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "expression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4915,
                                                                                                                "name": "_deposits",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 3659,
                                                                                                                "src": "15435:9:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                    "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4917,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4916,
                                                                                                                "name": "party",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 4288,
                                                                                                                "src": "15445:5:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "15435:16:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                                "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4921,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4918,
                                                                                                                "name": "currencies",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 3649,
                                                                                                                "src": "15452:10:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                    "typeString": "bytes32[] storage ref"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4920,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4919,
                                                                                                                "name": "i",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 4307,
                                                                                                                "src": "15463:1:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "15452:13:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                                "typeString": "bytes32"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "15435:31:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                            "typeString": "struct Cash.deposit storage ref"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4922,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "memberName": "issuedAmount",
                                                                                                    "nodeType": "MemberAccess",
                                                                                                    "referencedDeclaration": 3643,
                                                                                                    "src": "15435:44:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "arguments": [
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4924,
                                                                                                            "name": "party",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 4288,
                                                                                                            "src": "15491:5:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            }
                                                                                                        }
                                                                                                    ],
                                                                                                    "expression": {
                                                                                                        "argumentTypes": [
                                                                                                            {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4923,
                                                                                                        "name": "balanceOf",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 12173,
                                                                                                        "src": "15481:9:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
                                                                                                            "typeString": "function (address) view returns (uint256)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4925,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "kind": "functionCall",
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [],
                                                                                                    "nodeType": "FunctionCall",
                                                                                                    "src": "15481:16:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                }
                                                                                            ],
                                                                                            "expression": {
                                                                                                "argumentTypes": [
                                                                                                    {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                        "typeString": "bytes32"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4909,
                                                                                                "name": "CashRedeemed",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 3687,
                                                                                                "src": "15393:12:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
                                                                                                    "typeString": "function (address,bytes32,uint256,uint256,uint256)"
                                                                                                }
                                                                                            },
                                                                                            "id": 4926,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "kind": "functionCall",
                                                                                            "lValueRequested": false,
                                                                                            "names": [],
                                                                                            "nodeType": "FunctionCall",
                                                                                            "src": "15393:105:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_tuple$__$",
                                                                                                "typeString": "tuple()"
                                                                                            }
                                                                                        },
                                                                                        "id": 4927,
                                                                                        "nodeType": "EmitStatement",
                                                                                        "src": "15388:110:15"
                                                                                    }
                                                                                ]
                                                                            }
                                                                        },
                                                                        {
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "id": 5065,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "leftHandSide": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 5052,
                                                                                    "name": "amount",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 4286,
                                                                                    "src": "16861:6:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                "nodeType": "Assignment",
                                                                                "operator": "=",
                                                                                "rightHandSide": {
                                                                                    "argumentTypes": null,
                                                                                    "arguments": [
                                                                                        {
                                                                                            "argumentTypes": null,
                                                                                            "id": 5055,
                                                                                            "name": "ref",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 4747,
                                                                                            "src": "16879:3:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        {
                                                                                            "argumentTypes": null,
                                                                                            "expression": {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "baseExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 5056,
                                                                                                        "name": "_deposits",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 3659,
                                                                                                        "src": "16884:9:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                            "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 5058,
                                                                                                    "indexExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 5057,
                                                                                                        "name": "party",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4288,
                                                                                                        "src": "16894:5:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "16884:16:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                        "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 5062,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "baseExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 5059,
                                                                                                        "name": "currencies",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 3649,
                                                                                                        "src": "16901:10:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                            "typeString": "bytes32[] storage ref"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 5061,
                                                                                                    "indexExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 5060,
                                                                                                        "name": "i",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4307,
                                                                                                        "src": "16912:1:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "16901:13:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                        "typeString": "bytes32"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "16884:31:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                    "typeString": "struct Cash.deposit storage ref"
                                                                                                }
                                                                                            },
                                                                                            "id": 5063,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "memberName": "issuedAmount",
                                                                                            "nodeType": "MemberAccess",
                                                                                            "referencedDeclaration": 3643,
                                                                                            "src": "16884:44:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        }
                                                                                    ],
                                                                                    "expression": {
                                                                                        "argumentTypes": [
                                                                                            {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            },
                                                                                            {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        ],
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 5053,
                                                                                            "name": "Math",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 10483,
                                                                                            "src": "16870:4:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                                                "typeString": "type(library Math)"
                                                                                            }
                                                                                        },
                                                                                        "id": 5054,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "sub",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 10300,
                                                                                        "src": "16870:8:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                        }
                                                                                    },
                                                                                    "id": 5064,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "kind": "functionCall",
                                                                                    "lValueRequested": false,
                                                                                    "names": [],
                                                                                    "nodeType": "FunctionCall",
                                                                                    "src": "16870:59:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                "src": "16861:68:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "id": 5066,
                                                                            "nodeType": "ExpressionStatement",
                                                                            "src": "16861:68:15"
                                                                        },
                                                                        {
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "id": 5076,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "leftHandSide": {
                                                                                    "argumentTypes": null,
                                                                                    "expression": {
                                                                                        "argumentTypes": null,
                                                                                        "baseExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "baseExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 5067,
                                                                                                "name": "_deposits",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 3659,
                                                                                                "src": "17020:9:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                    "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                }
                                                                                            },
                                                                                            "id": 5072,
                                                                                            "indexExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 5068,
                                                                                                "name": "party",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 4288,
                                                                                                "src": "17030:5:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "IndexAccess",
                                                                                            "src": "17020:16:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                            }
                                                                                        },
                                                                                        "id": 5073,
                                                                                        "indexExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "baseExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 5069,
                                                                                                "name": "currencies",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 3649,
                                                                                                "src": "17037:10:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                    "typeString": "bytes32[] storage ref"
                                                                                                }
                                                                                            },
                                                                                            "id": 5071,
                                                                                            "indexExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 5070,
                                                                                                "name": "i",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 4307,
                                                                                                "src": "17048:1:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "IndexAccess",
                                                                                            "src": "17037:13:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                "typeString": "bytes32"
                                                                                            }
                                                                                        },
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "IndexAccess",
                                                                                        "src": "17020:31:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                            "typeString": "struct Cash.deposit storage ref"
                                                                                        }
                                                                                    },
                                                                                    "id": 5074,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": true,
                                                                                    "memberName": "depositAmount",
                                                                                    "nodeType": "MemberAccess",
                                                                                    "referencedDeclaration": 3641,
                                                                                    "src": "17020:45:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                "nodeType": "Assignment",
                                                                                "operator": "=",
                                                                                "rightHandSide": {
                                                                                    "argumentTypes": null,
                                                                                    "hexValue": "30",
                                                                                    "id": 5075,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "kind": "number",
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "Literal",
                                                                                    "src": "17068:1:15",
                                                                                    "subdenomination": null,
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                                        "typeString": "int_const 0"
                                                                                    },
                                                                                    "value": "0"
                                                                                },
                                                                                "src": "17020:49:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "id": 5077,
                                                                            "nodeType": "ExpressionStatement",
                                                                            "src": "17020:49:15"
                                                                        },
                                                                        {
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "id": 5087,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "leftHandSide": {
                                                                                    "argumentTypes": null,
                                                                                    "expression": {
                                                                                        "argumentTypes": null,
                                                                                        "baseExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "baseExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 5078,
                                                                                                "name": "_deposits",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 3659,
                                                                                                "src": "17108:9:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                    "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                }
                                                                                            },
                                                                                            "id": 5083,
                                                                                            "indexExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 5079,
                                                                                                "name": "party",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 4288,
                                                                                                "src": "17118:5:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "IndexAccess",
                                                                                            "src": "17108:16:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                            }
                                                                                        },
                                                                                        "id": 5084,
                                                                                        "indexExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "baseExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 5080,
                                                                                                "name": "currencies",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 3649,
                                                                                                "src": "17125:10:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                    "typeString": "bytes32[] storage ref"
                                                                                                }
                                                                                            },
                                                                                            "id": 5082,
                                                                                            "indexExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 5081,
                                                                                                "name": "i",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 4307,
                                                                                                "src": "17136:1:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "IndexAccess",
                                                                                            "src": "17125:13:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                "typeString": "bytes32"
                                                                                            }
                                                                                        },
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "IndexAccess",
                                                                                        "src": "17108:31:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                            "typeString": "struct Cash.deposit storage ref"
                                                                                        }
                                                                                    },
                                                                                    "id": 5085,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": true,
                                                                                    "memberName": "issuedAmount",
                                                                                    "nodeType": "MemberAccess",
                                                                                    "referencedDeclaration": 3643,
                                                                                    "src": "17108:44:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                "nodeType": "Assignment",
                                                                                "operator": "=",
                                                                                "rightHandSide": {
                                                                                    "argumentTypes": null,
                                                                                    "hexValue": "30",
                                                                                    "id": 5086,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "kind": "number",
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "Literal",
                                                                                    "src": "17155:1:15",
                                                                                    "subdenomination": null,
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                                        "typeString": "int_const 0"
                                                                                    },
                                                                                    "value": "0"
                                                                                },
                                                                                "src": "17108:48:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "id": 5088,
                                                                            "nodeType": "ExpressionStatement",
                                                                            "src": "17108:48:15"
                                                                        },
                                                                        {
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "id": 5091,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "leftHandSide": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 5089,
                                                                                    "name": "found",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 4298,
                                                                                    "src": "17179:5:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bool",
                                                                                        "typeString": "bool"
                                                                                    }
                                                                                },
                                                                                "nodeType": "Assignment",
                                                                                "operator": "=",
                                                                                "rightHandSide": {
                                                                                    "argumentTypes": null,
                                                                                    "hexValue": "74727565",
                                                                                    "id": 5090,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "kind": "bool",
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "Literal",
                                                                                    "src": "17187:4:15",
                                                                                    "subdenomination": null,
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bool",
                                                                                        "typeString": "bool"
                                                                                    },
                                                                                    "value": "true"
                                                                                },
                                                                                "src": "17179:12:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                }
                                                                            },
                                                                            "id": 5092,
                                                                            "nodeType": "ExpressionStatement",
                                                                            "src": "17179:12:15"
                                                                        },
                                                                        {
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "id": 5097,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "leftHandSide": {
                                                                                    "argumentTypes": null,
                                                                                    "baseExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 5093,
                                                                                        "name": "_lock",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 3711,
                                                                                        "src": "17214:5:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                                                            "typeString": "mapping(bytes32 => bool)"
                                                                                        }
                                                                                    },
                                                                                    "id": 5095,
                                                                                    "indexExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "hexValue": "72656465656d",
                                                                                        "id": 5094,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": true,
                                                                                        "kind": "string",
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "Literal",
                                                                                        "src": "17220:8:15",
                                                                                        "subdenomination": null,
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_stringliteral_26ef0a97332ad048ac544d8dfacdd43e128b9816d599fdd0310960904fa18609",
                                                                                            "typeString": "literal_string \"redeem\""
                                                                                        },
                                                                                        "value": "redeem"
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": true,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "17214:15:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bool",
                                                                                        "typeString": "bool"
                                                                                    }
                                                                                },
                                                                                "nodeType": "Assignment",
                                                                                "operator": "=",
                                                                                "rightHandSide": {
                                                                                    "argumentTypes": null,
                                                                                    "hexValue": "66616c7365",
                                                                                    "id": 5096,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "kind": "bool",
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "Literal",
                                                                                    "src": "17232:5:15",
                                                                                    "subdenomination": null,
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bool",
                                                                                        "typeString": "bool"
                                                                                    },
                                                                                    "value": "false"
                                                                                },
                                                                                "src": "17214:23:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                }
                                                                            },
                                                                            "id": 5098,
                                                                            "nodeType": "ExpressionStatement",
                                                                            "src": "17214:23:15"
                                                                        }
                                                                    ]
                                                                }
                                                            },
                                                            "id": 5101,
                                                            "nodeType": "IfStatement",
                                                            "src": "9227:8030:15",
                                                            "trueBody": {
                                                                "id": 4717,
                                                                "nodeType": "Block",
                                                                "src": "9356:3571:15",
                                                                "statements": [
                                                                    {
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "arguments": [
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "id": 4396,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "UnaryOperation",
                                                                                    "operator": "!",
                                                                                    "prefix": true,
                                                                                    "src": "9403:16:15",
                                                                                    "subExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "baseExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 4393,
                                                                                            "name": "_lock",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 3711,
                                                                                            "src": "9404:5:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                                                                "typeString": "mapping(bytes32 => bool)"
                                                                                            }
                                                                                        },
                                                                                        "id": 4395,
                                                                                        "indexExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "hexValue": "72656465656d",
                                                                                            "id": 4394,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "kind": "string",
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "Literal",
                                                                                            "src": "9410:8:15",
                                                                                            "subdenomination": null,
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_stringliteral_26ef0a97332ad048ac544d8dfacdd43e128b9816d599fdd0310960904fa18609",
                                                                                                "typeString": "literal_string \"redeem\""
                                                                                            },
                                                                                            "value": "redeem"
                                                                                        },
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "IndexAccess",
                                                                                        "src": "9404:15:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bool",
                                                                                            "typeString": "bool"
                                                                                        }
                                                                                    },
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bool",
                                                                                        "typeString": "bool"
                                                                                    }
                                                                                },
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "hexValue": "4c6f636b206f6e20726564656d7074696f6e",
                                                                                    "id": 4397,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "kind": "string",
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "Literal",
                                                                                    "src": "9421:20:15",
                                                                                    "subdenomination": null,
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_stringliteral_a1bb289ca5093f725927da5725490b6088de689057901f6963d5358c4ab7c40a",
                                                                                        "typeString": "literal_string \"Lock on redemption\""
                                                                                    },
                                                                                    "value": "Lock on redemption"
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": [
                                                                                    {
                                                                                        "typeIdentifier": "t_bool",
                                                                                        "typeString": "bool"
                                                                                    },
                                                                                    {
                                                                                        "typeIdentifier": "t_stringliteral_a1bb289ca5093f725927da5725490b6088de689057901f6963d5358c4ab7c40a",
                                                                                        "typeString": "literal_string \"Lock on redemption\""
                                                                                    }
                                                                                ],
                                                                                "id": 4392,
                                                                                "name": "require",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [
                                                                                    13010,
                                                                                    13011
                                                                                ],
                                                                                "referencedDeclaration": 13011,
                                                                                "src": "9395:7:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                                                    "typeString": "function (bool,string memory) pure"
                                                                                }
                                                                            },
                                                                            "id": 4398,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "kind": "functionCall",
                                                                            "lValueRequested": false,
                                                                            "names": [],
                                                                            "nodeType": "FunctionCall",
                                                                            "src": "9395:47:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_tuple$__$",
                                                                                "typeString": "tuple()"
                                                                            }
                                                                        },
                                                                        "id": 4399,
                                                                        "nodeType": "ExpressionStatement",
                                                                        "src": "9395:47:15"
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 4404,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftHandSide": {
                                                                                "argumentTypes": null,
                                                                                "baseExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 4400,
                                                                                    "name": "_lock",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 3711,
                                                                                    "src": "9465:5:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                                                        "typeString": "mapping(bytes32 => bool)"
                                                                                    }
                                                                                },
                                                                                "id": 4402,
                                                                                "indexExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "hexValue": "72656465656d",
                                                                                    "id": 4401,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "kind": "string",
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "Literal",
                                                                                    "src": "9471:8:15",
                                                                                    "subdenomination": null,
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_stringliteral_26ef0a97332ad048ac544d8dfacdd43e128b9816d599fdd0310960904fa18609",
                                                                                        "typeString": "literal_string \"redeem\""
                                                                                    },
                                                                                    "value": "redeem"
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": true,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "9465:15:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                }
                                                                            },
                                                                            "nodeType": "Assignment",
                                                                            "operator": "=",
                                                                            "rightHandSide": {
                                                                                "argumentTypes": null,
                                                                                "hexValue": "74727565",
                                                                                "id": 4403,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "bool",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "9483:4:15",
                                                                                "subdenomination": null,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                },
                                                                                "value": "true"
                                                                            },
                                                                            "src": "9465:22:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bool",
                                                                                "typeString": "bool"
                                                                            }
                                                                        },
                                                                        "id": 4405,
                                                                        "nodeType": "ExpressionStatement",
                                                                        "src": "9465:22:15"
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 4426,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftHandSide": {
                                                                                "argumentTypes": null,
                                                                                "expression": {
                                                                                    "argumentTypes": null,
                                                                                    "baseExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "baseExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 4406,
                                                                                            "name": "_deposits",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 3659,
                                                                                            "src": "9526:9:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                            }
                                                                                        },
                                                                                        "id": 4411,
                                                                                        "indexExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 4407,
                                                                                            "name": "party",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 4288,
                                                                                            "src": "9536:5:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            }
                                                                                        },
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "IndexAccess",
                                                                                        "src": "9526:16:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                            "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                        }
                                                                                    },
                                                                                    "id": 4412,
                                                                                    "indexExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "baseExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 4408,
                                                                                            "name": "currencies",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 3649,
                                                                                            "src": "9543:10:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                "typeString": "bytes32[] storage ref"
                                                                                            }
                                                                                        },
                                                                                        "id": 4410,
                                                                                        "indexExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 4409,
                                                                                            "name": "i",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 4307,
                                                                                            "src": "9554:1:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "IndexAccess",
                                                                                        "src": "9543:13:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        }
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "9526:31:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                        "typeString": "struct Cash.deposit storage ref"
                                                                                    }
                                                                                },
                                                                                "id": 4413,
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": true,
                                                                                "memberName": "depositAmount",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 3641,
                                                                                "src": "9526:45:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "nodeType": "Assignment",
                                                                            "operator": "=",
                                                                            "rightHandSide": {
                                                                                "argumentTypes": null,
                                                                                "arguments": [
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "baseExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4416,
                                                                                                    "name": "_deposits",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 3659,
                                                                                                    "src": "9583:9:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                        "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                    }
                                                                                                },
                                                                                                "id": 4418,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4417,
                                                                                                    "name": "party",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4288,
                                                                                                    "src": "9593:5:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "9583:16:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                    "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                }
                                                                                            },
                                                                                            "id": 4422,
                                                                                            "indexExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4419,
                                                                                                    "name": "currencies",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 3649,
                                                                                                    "src": "9600:10:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                        "typeString": "bytes32[] storage ref"
                                                                                                    }
                                                                                                },
                                                                                                "id": 4421,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4420,
                                                                                                    "name": "i",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4307,
                                                                                                    "src": "9611:1:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "9600:13:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                }
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "IndexAccess",
                                                                                            "src": "9583:31:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                "typeString": "struct Cash.deposit storage ref"
                                                                                            }
                                                                                        },
                                                                                        "id": 4423,
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "depositAmount",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 3641,
                                                                                        "src": "9583:45:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "id": 4424,
                                                                                        "name": "value",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 4342,
                                                                                        "src": "9630:5:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "expression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 4414,
                                                                                        "name": "Math",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 10483,
                                                                                        "src": "9574:4:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                                            "typeString": "type(library Math)"
                                                                                        }
                                                                                    },
                                                                                    "id": 4415,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "memberName": "sub",
                                                                                    "nodeType": "MemberAccess",
                                                                                    "referencedDeclaration": 10300,
                                                                                    "src": "9574:8:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                    }
                                                                                },
                                                                                "id": 4425,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "kind": "functionCall",
                                                                                "lValueRequested": false,
                                                                                "names": [],
                                                                                "nodeType": "FunctionCall",
                                                                                "src": "9574:62:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "src": "9526:110:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "id": 4427,
                                                                        "nodeType": "ExpressionStatement",
                                                                        "src": "9526:110:15"
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 4448,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftHandSide": {
                                                                                "argumentTypes": null,
                                                                                "expression": {
                                                                                    "argumentTypes": null,
                                                                                    "baseExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "baseExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 4428,
                                                                                            "name": "_deposits",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 3659,
                                                                                            "src": "9675:9:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                            }
                                                                                        },
                                                                                        "id": 4433,
                                                                                        "indexExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 4429,
                                                                                            "name": "party",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 4288,
                                                                                            "src": "9685:5:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            }
                                                                                        },
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "IndexAccess",
                                                                                        "src": "9675:16:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                            "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                        }
                                                                                    },
                                                                                    "id": 4434,
                                                                                    "indexExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "baseExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 4430,
                                                                                            "name": "currencies",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 3649,
                                                                                            "src": "9692:10:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                "typeString": "bytes32[] storage ref"
                                                                                            }
                                                                                        },
                                                                                        "id": 4432,
                                                                                        "indexExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 4431,
                                                                                            "name": "i",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 4307,
                                                                                            "src": "9703:1:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "IndexAccess",
                                                                                        "src": "9692:13:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        }
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "9675:31:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                        "typeString": "struct Cash.deposit storage ref"
                                                                                    }
                                                                                },
                                                                                "id": 4435,
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": true,
                                                                                "memberName": "issuedAmount",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 3643,
                                                                                "src": "9675:44:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "nodeType": "Assignment",
                                                                            "operator": "=",
                                                                            "rightHandSide": {
                                                                                "argumentTypes": null,
                                                                                "arguments": [
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "baseExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4438,
                                                                                                    "name": "_deposits",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 3659,
                                                                                                    "src": "9731:9:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                        "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                    }
                                                                                                },
                                                                                                "id": 4440,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4439,
                                                                                                    "name": "party",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4288,
                                                                                                    "src": "9741:5:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "9731:16:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                    "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                }
                                                                                            },
                                                                                            "id": 4444,
                                                                                            "indexExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4441,
                                                                                                    "name": "currencies",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 3649,
                                                                                                    "src": "9748:10:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                        "typeString": "bytes32[] storage ref"
                                                                                                    }
                                                                                                },
                                                                                                "id": 4443,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4442,
                                                                                                    "name": "i",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4307,
                                                                                                    "src": "9759:1:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "9748:13:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                }
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "IndexAccess",
                                                                                            "src": "9731:31:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                "typeString": "struct Cash.deposit storage ref"
                                                                                            }
                                                                                        },
                                                                                        "id": 4445,
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "issuedAmount",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 3643,
                                                                                        "src": "9731:44:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "id": 4446,
                                                                                        "name": "amount",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 4286,
                                                                                        "src": "9777:6:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "expression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 4436,
                                                                                        "name": "Math",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 10483,
                                                                                        "src": "9722:4:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                                            "typeString": "type(library Math)"
                                                                                        }
                                                                                    },
                                                                                    "id": 4437,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "memberName": "sub",
                                                                                    "nodeType": "MemberAccess",
                                                                                    "referencedDeclaration": 10300,
                                                                                    "src": "9722:8:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                    }
                                                                                },
                                                                                "id": 4447,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "kind": "functionCall",
                                                                                "lValueRequested": false,
                                                                                "names": [],
                                                                                "nodeType": "FunctionCall",
                                                                                "src": "9722:62:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "src": "9675:109:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "id": 4449,
                                                                        "nodeType": "ExpressionStatement",
                                                                        "src": "9675:109:15"
                                                                    },
                                                                    {
                                                                        "condition": {
                                                                            "argumentTypes": null,
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            },
                                                                            "id": 4452,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 4450,
                                                                                "name": "operation",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 4290,
                                                                                "src": "9810:9:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "nodeType": "BinaryOperation",
                                                                            "operator": "==",
                                                                            "rightExpression": {
                                                                                "argumentTypes": null,
                                                                                "hexValue": "72656465656d",
                                                                                "id": 4451,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "string",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "9821:8:15",
                                                                                "subdenomination": null,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_stringliteral_26ef0a97332ad048ac544d8dfacdd43e128b9816d599fdd0310960904fa18609",
                                                                                    "typeString": "literal_string \"redeem\""
                                                                                },
                                                                                "value": "redeem"
                                                                            },
                                                                            "src": "9810:19:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bool",
                                                                                "typeString": "bool"
                                                                            }
                                                                        },
                                                                        "falseBody": {
                                                                            "condition": {
                                                                                "argumentTypes": null,
                                                                                "commonType": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                "id": 4603,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "leftExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 4601,
                                                                                    "name": "operation",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 4290,
                                                                                    "src": "11654:9:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bytes32",
                                                                                        "typeString": "bytes32"
                                                                                    }
                                                                                },
                                                                                "nodeType": "BinaryOperation",
                                                                                "operator": "==",
                                                                                "rightExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "hexValue": "7472616e73666572",
                                                                                    "id": 4602,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "kind": "string",
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "Literal",
                                                                                    "src": "11665:10:15",
                                                                                    "subdenomination": null,
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_stringliteral_b483afd3f4caedc6eebf44246fe54e38c95e3179a5ec9ea81740eca5b482d12e",
                                                                                        "typeString": "literal_string \"transfer\""
                                                                                    },
                                                                                    "value": "transfer"
                                                                                },
                                                                                "src": "11654:21:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                }
                                                                            },
                                                                            "falseBody": null,
                                                                            "id": 4701,
                                                                            "nodeType": "IfStatement",
                                                                            "src": "11651:1143:15",
                                                                            "trueBody": {
                                                                                "id": 4700,
                                                                                "nodeType": "Block",
                                                                                "src": "11676:1118:15",
                                                                                "statements": [
                                                                                    {
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "arguments": [
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4605,
                                                                                                    "name": "party",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4288,
                                                                                                    "src": "11773:5:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4606,
                                                                                                    "name": "amount",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4286,
                                                                                                    "src": "11780:6:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                }
                                                                                            ],
                                                                                            "expression": {
                                                                                                "argumentTypes": [
                                                                                                    {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4604,
                                                                                                "name": "_burn",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 12462,
                                                                                                "src": "11767:5:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                                                                    "typeString": "function (address,uint256)"
                                                                                                }
                                                                                            },
                                                                                            "id": 4607,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "kind": "functionCall",
                                                                                            "lValueRequested": false,
                                                                                            "names": [],
                                                                                            "nodeType": "FunctionCall",
                                                                                            "src": "11767:20:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_tuple$__$",
                                                                                                "typeString": "tuple()"
                                                                                            }
                                                                                        },
                                                                                        "id": 4608,
                                                                                        "nodeType": "ExpressionStatement",
                                                                                        "src": "11767:20:15"
                                                                                    },
                                                                                    {
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 4621,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "leftHandSide": {
                                                                                                "argumentTypes": null,
                                                                                                "components": [
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4609,
                                                                                                        "name": "amount",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4286,
                                                                                                        "src": "11931:6:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4610,
                                                                                                        "name": "value",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4342,
                                                                                                        "src": "11939:5:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4611,
                                                                                                "isConstant": false,
                                                                                                "isInlineArray": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": true,
                                                                                                "nodeType": "TupleExpression",
                                                                                                "src": "11930:15:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
                                                                                                    "typeString": "tuple(uint256,uint256)"
                                                                                                }
                                                                                            },
                                                                                            "nodeType": "Assignment",
                                                                                            "operator": "=",
                                                                                            "rightHandSide": {
                                                                                                "argumentTypes": null,
                                                                                                "arguments": [
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4613,
                                                                                                        "name": "party",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4288,
                                                                                                        "src": "11955:5:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4614,
                                                                                                        "name": "amount",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4286,
                                                                                                        "src": "11962:6:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4615,
                                                                                                        "name": "value",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4342,
                                                                                                        "src": "11970:5:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4616,
                                                                                                            "name": "currencies",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 3649,
                                                                                                            "src": "11977:10:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                "typeString": "bytes32[] storage ref"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4618,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4617,
                                                                                                            "name": "i",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 4307,
                                                                                                            "src": "11988:1:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "11977:13:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "hexValue": "7472616e73666572",
                                                                                                        "id": 4619,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": true,
                                                                                                        "kind": "string",
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "Literal",
                                                                                                        "src": "11992:10:15",
                                                                                                        "subdenomination": null,
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_stringliteral_b483afd3f4caedc6eebf44246fe54e38c95e3179a5ec9ea81740eca5b482d12e",
                                                                                                            "typeString": "literal_string \"transfer\""
                                                                                                        },
                                                                                                        "value": "transfer"
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_stringliteral_b483afd3f4caedc6eebf44246fe54e38c95e3179a5ec9ea81740eca5b482d12e",
                                                                                                            "typeString": "literal_string \"transfer\""
                                                                                                        }
                                                                                                    ],
                                                                                                    "id": 4612,
                                                                                                    "name": "payFee",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 5595,
                                                                                                    "src": "11948:6:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$_t_uint256_$",
                                                                                                        "typeString": "function (address,uint256,uint256,bytes32,bytes32) returns (uint256,uint256)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 4620,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "kind": "functionCall",
                                                                                                "lValueRequested": false,
                                                                                                "names": [],
                                                                                                "nodeType": "FunctionCall",
                                                                                                "src": "11948:55:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
                                                                                                    "typeString": "tuple(uint256,uint256)"
                                                                                                }
                                                                                            },
                                                                                            "src": "11930:73:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_tuple$__$",
                                                                                                "typeString": "tuple()"
                                                                                            }
                                                                                        },
                                                                                        "id": 4622,
                                                                                        "nodeType": "ExpressionStatement",
                                                                                        "src": "11930:73:15"
                                                                                    },
                                                                                    {
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "arguments": [
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4624,
                                                                                                    "name": "receiver",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4292,
                                                                                                    "src": "12101:8:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4625,
                                                                                                    "name": "amount",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4286,
                                                                                                    "src": "12111:6:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                }
                                                                                            ],
                                                                                            "expression": {
                                                                                                "argumentTypes": [
                                                                                                    {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4623,
                                                                                                "name": "_mint",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 12418,
                                                                                                "src": "12095:5:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                                                                    "typeString": "function (address,uint256)"
                                                                                                }
                                                                                            },
                                                                                            "id": 4626,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "kind": "functionCall",
                                                                                            "lValueRequested": false,
                                                                                            "names": [],
                                                                                            "nodeType": "FunctionCall",
                                                                                            "src": "12095:23:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_tuple$__$",
                                                                                                "typeString": "tuple()"
                                                                                            }
                                                                                        },
                                                                                        "id": 4627,
                                                                                        "nodeType": "ExpressionStatement",
                                                                                        "src": "12095:23:15"
                                                                                    },
                                                                                    {
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 4648,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "leftHandSide": {
                                                                                                "argumentTypes": null,
                                                                                                "expression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "baseExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4628,
                                                                                                            "name": "_deposits",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 3659,
                                                                                                            "src": "12190:9:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4633,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4629,
                                                                                                            "name": "receiver",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 4292,
                                                                                                            "src": "12200:8:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "12190:19:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                            "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4634,
                                                                                                    "indexExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4630,
                                                                                                            "name": "currencies",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 3649,
                                                                                                            "src": "12210:10:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                "typeString": "bytes32[] storage ref"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4632,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4631,
                                                                                                            "name": "i",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 4307,
                                                                                                            "src": "12221:1:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "12210:13:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "12190:34:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                        "typeString": "struct Cash.deposit storage ref"
                                                                                                    }
                                                                                                },
                                                                                                "id": 4635,
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": true,
                                                                                                "memberName": "depositAmount",
                                                                                                "nodeType": "MemberAccess",
                                                                                                "referencedDeclaration": 3641,
                                                                                                "src": "12190:48:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "nodeType": "Assignment",
                                                                                            "operator": "=",
                                                                                            "rightHandSide": {
                                                                                                "argumentTypes": null,
                                                                                                "arguments": [
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "expression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4638,
                                                                                                                    "name": "_deposits",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                    "src": "12250:9:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                        "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4640,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4639,
                                                                                                                    "name": "receiver",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 4292,
                                                                                                                    "src": "12260:8:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "12250:19:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                                    "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4644,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4641,
                                                                                                                    "name": "currencies",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                    "src": "12270:10:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                        "typeString": "bytes32[] storage ref"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4643,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4642,
                                                                                                                    "name": "i",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                    "src": "12281:1:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "12270:13:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                    "typeString": "bytes32"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "12250:34:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                                "typeString": "struct Cash.deposit storage ref"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4645,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "memberName": "depositAmount",
                                                                                                        "nodeType": "MemberAccess",
                                                                                                        "referencedDeclaration": 3641,
                                                                                                        "src": "12250:48:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4646,
                                                                                                        "name": "value",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4342,
                                                                                                        "src": "12300:5:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "expression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4636,
                                                                                                        "name": "Math",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 10483,
                                                                                                        "src": "12241:4:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                                                            "typeString": "type(library Math)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4637,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "memberName": "add",
                                                                                                    "nodeType": "MemberAccess",
                                                                                                    "referencedDeclaration": 10236,
                                                                                                    "src": "12241:8:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 4647,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "kind": "functionCall",
                                                                                                "lValueRequested": false,
                                                                                                "names": [],
                                                                                                "nodeType": "FunctionCall",
                                                                                                "src": "12241:65:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "src": "12190:116:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "id": 4649,
                                                                                        "nodeType": "ExpressionStatement",
                                                                                        "src": "12190:116:15"
                                                                                    },
                                                                                    {
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 4670,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "leftHandSide": {
                                                                                                "argumentTypes": null,
                                                                                                "expression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "baseExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4650,
                                                                                                            "name": "_deposits",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 3659,
                                                                                                            "src": "12384:9:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4655,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4651,
                                                                                                            "name": "receiver",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 4292,
                                                                                                            "src": "12394:8:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "12384:19:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                            "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4656,
                                                                                                    "indexExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4652,
                                                                                                            "name": "currencies",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 3649,
                                                                                                            "src": "12404:10:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                "typeString": "bytes32[] storage ref"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4654,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4653,
                                                                                                            "name": "i",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 4307,
                                                                                                            "src": "12415:1:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "12404:13:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "12384:34:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                        "typeString": "struct Cash.deposit storage ref"
                                                                                                    }
                                                                                                },
                                                                                                "id": 4657,
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": true,
                                                                                                "memberName": "issuedAmount",
                                                                                                "nodeType": "MemberAccess",
                                                                                                "referencedDeclaration": 3643,
                                                                                                "src": "12384:47:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "nodeType": "Assignment",
                                                                                            "operator": "=",
                                                                                            "rightHandSide": {
                                                                                                "argumentTypes": null,
                                                                                                "arguments": [
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "expression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4660,
                                                                                                                    "name": "_deposits",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                    "src": "12443:9:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                        "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4662,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4661,
                                                                                                                    "name": "receiver",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 4292,
                                                                                                                    "src": "12453:8:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "12443:19:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                                    "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4666,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4663,
                                                                                                                    "name": "currencies",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                    "src": "12463:10:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                        "typeString": "bytes32[] storage ref"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4665,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4664,
                                                                                                                    "name": "i",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                    "src": "12474:1:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "12463:13:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                    "typeString": "bytes32"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "12443:34:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                                "typeString": "struct Cash.deposit storage ref"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4667,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "memberName": "issuedAmount",
                                                                                                        "nodeType": "MemberAccess",
                                                                                                        "referencedDeclaration": 3643,
                                                                                                        "src": "12443:47:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4668,
                                                                                                        "name": "amount",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4286,
                                                                                                        "src": "12492:6:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "expression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4658,
                                                                                                        "name": "Math",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 10483,
                                                                                                        "src": "12434:4:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                                                            "typeString": "type(library Math)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4659,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "memberName": "add",
                                                                                                    "nodeType": "MemberAccess",
                                                                                                    "referencedDeclaration": 10236,
                                                                                                    "src": "12434:8:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 4669,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "kind": "functionCall",
                                                                                                "lValueRequested": false,
                                                                                                "names": [],
                                                                                                "nodeType": "FunctionCall",
                                                                                                "src": "12434:65:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "src": "12384:115:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "id": 4671,
                                                                                        "nodeType": "ExpressionStatement",
                                                                                        "src": "12384:115:15"
                                                                                    },
                                                                                    {
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 4688,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "leftHandSide": {
                                                                                                "argumentTypes": null,
                                                                                                "expression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "baseExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4672,
                                                                                                            "name": "_deposits",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 3659,
                                                                                                            "src": "12591:9:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4677,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4673,
                                                                                                            "name": "receiver",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 4292,
                                                                                                            "src": "12601:8:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "12591:19:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                            "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4678,
                                                                                                    "indexExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4674,
                                                                                                            "name": "currencies",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 3649,
                                                                                                            "src": "12611:10:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                "typeString": "bytes32[] storage ref"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4676,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4675,
                                                                                                            "name": "i",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 4307,
                                                                                                            "src": "12622:1:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "12611:13:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "12591:34:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                        "typeString": "struct Cash.deposit storage ref"
                                                                                                    }
                                                                                                },
                                                                                                "id": 4679,
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": true,
                                                                                                "memberName": "depositor",
                                                                                                "nodeType": "MemberAccess",
                                                                                                "referencedDeclaration": 3645,
                                                                                                "src": "12591:44:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            "nodeType": "Assignment",
                                                                                            "operator": "=",
                                                                                            "rightHandSide": {
                                                                                                "argumentTypes": null,
                                                                                                "expression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "baseExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4680,
                                                                                                            "name": "_deposits",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 3659,
                                                                                                            "src": "12638:9:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4682,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4681,
                                                                                                            "name": "party",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 4288,
                                                                                                            "src": "12648:5:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "12638:16:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                            "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4686,
                                                                                                    "indexExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4683,
                                                                                                            "name": "currencies",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 3649,
                                                                                                            "src": "12655:10:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                "typeString": "bytes32[] storage ref"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4685,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4684,
                                                                                                            "name": "i",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 4307,
                                                                                                            "src": "12666:1:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "12655:13:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "12638:31:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                        "typeString": "struct Cash.deposit storage ref"
                                                                                                    }
                                                                                                },
                                                                                                "id": 4687,
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "memberName": "depositor",
                                                                                                "nodeType": "MemberAccess",
                                                                                                "referencedDeclaration": 3645,
                                                                                                "src": "12638:41:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            "src": "12591:88:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            }
                                                                                        },
                                                                                        "id": 4689,
                                                                                        "nodeType": "ExpressionStatement",
                                                                                        "src": "12591:88:15"
                                                                                    },
                                                                                    {
                                                                                        "eventCall": {
                                                                                            "argumentTypes": null,
                                                                                            "arguments": [
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4691,
                                                                                                    "name": "party",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4288,
                                                                                                    "src": "12724:5:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4692,
                                                                                                    "name": "receiver",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4292,
                                                                                                    "src": "12731:8:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "baseExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4693,
                                                                                                        "name": "currencies",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 3649,
                                                                                                        "src": "12741:10:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                            "typeString": "bytes32[] storage ref"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4695,
                                                                                                    "indexExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4694,
                                                                                                        "name": "i",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4307,
                                                                                                        "src": "12752:1:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "12741:13:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                        "typeString": "bytes32"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4696,
                                                                                                    "name": "amount",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4286,
                                                                                                    "src": "12756:6:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4697,
                                                                                                    "name": "value",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4342,
                                                                                                    "src": "12764:5:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                }
                                                                                            ],
                                                                                            "expression": {
                                                                                                "argumentTypes": [
                                                                                                    {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                        "typeString": "bytes32"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4690,
                                                                                                "name": "CashTransfer",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 3707,
                                                                                                "src": "12711:12:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$",
                                                                                                    "typeString": "function (address,address,bytes32,uint256,uint256)"
                                                                                                }
                                                                                            },
                                                                                            "id": 4698,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "kind": "functionCall",
                                                                                            "lValueRequested": false,
                                                                                            "names": [],
                                                                                            "nodeType": "FunctionCall",
                                                                                            "src": "12711:59:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_tuple$__$",
                                                                                                "typeString": "tuple()"
                                                                                            }
                                                                                        },
                                                                                        "id": 4699,
                                                                                        "nodeType": "EmitStatement",
                                                                                        "src": "12706:64:15"
                                                                                    }
                                                                                ]
                                                                            }
                                                                        },
                                                                        "id": 4702,
                                                                        "nodeType": "IfStatement",
                                                                        "src": "9807:2987:15",
                                                                        "trueBody": {
                                                                            "id": 4600,
                                                                            "nodeType": "Block",
                                                                            "src": "9830:1794:15",
                                                                            "statements": [
                                                                                {
                                                                                    "expression": {
                                                                                        "argumentTypes": null,
                                                                                        "arguments": [
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "id": 4454,
                                                                                                "name": "party",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 4288,
                                                                                                "src": "9907:5:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "id": 4455,
                                                                                                "name": "amount",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 4286,
                                                                                                "src": "9914:6:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            }
                                                                                        ],
                                                                                        "expression": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "id": 4453,
                                                                                            "name": "_burn",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 12462,
                                                                                            "src": "9901:5:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                                                                "typeString": "function (address,uint256)"
                                                                                            }
                                                                                        },
                                                                                        "id": 4456,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "kind": "functionCall",
                                                                                        "lValueRequested": false,
                                                                                        "names": [],
                                                                                        "nodeType": "FunctionCall",
                                                                                        "src": "9901:20:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_tuple$__$",
                                                                                            "typeString": "tuple()"
                                                                                        }
                                                                                    },
                                                                                    "id": 4457,
                                                                                    "nodeType": "ExpressionStatement",
                                                                                    "src": "9901:20:15"
                                                                                },
                                                                                {
                                                                                    "expression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 4470,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "leftHandSide": {
                                                                                            "argumentTypes": null,
                                                                                            "components": [
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4458,
                                                                                                    "name": "amount",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4286,
                                                                                                    "src": "9949:6:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4459,
                                                                                                    "name": "value",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4342,
                                                                                                    "src": "9957:5:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                }
                                                                                            ],
                                                                                            "id": 4460,
                                                                                            "isConstant": false,
                                                                                            "isInlineArray": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": true,
                                                                                            "nodeType": "TupleExpression",
                                                                                            "src": "9948:15:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
                                                                                                "typeString": "tuple(uint256,uint256)"
                                                                                            }
                                                                                        },
                                                                                        "nodeType": "Assignment",
                                                                                        "operator": "=",
                                                                                        "rightHandSide": {
                                                                                            "argumentTypes": null,
                                                                                            "arguments": [
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4462,
                                                                                                    "name": "party",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4288,
                                                                                                    "src": "9973:5:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4463,
                                                                                                    "name": "amount",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4286,
                                                                                                    "src": "9980:6:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4464,
                                                                                                    "name": "value",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4342,
                                                                                                    "src": "9988:5:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "baseExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4465,
                                                                                                        "name": "currencies",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 3649,
                                                                                                        "src": "9995:10:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                            "typeString": "bytes32[] storage ref"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4467,
                                                                                                    "indexExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4466,
                                                                                                        "name": "i",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4307,
                                                                                                        "src": "10006:1:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "9995:13:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                        "typeString": "bytes32"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexValue": "77697468647261776c",
                                                                                                    "id": 4468,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "kind": "string",
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "Literal",
                                                                                                    "src": "10010:11:15",
                                                                                                    "subdenomination": null,
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_stringliteral_014ab85ea8e748688cc6784b5e57ac1916c5079c4b0ea7171a3ee030794a44d0",
                                                                                                        "typeString": "literal_string \"withdrawl\""
                                                                                                    },
                                                                                                    "value": "withdrawl"
                                                                                                }
                                                                                            ],
                                                                                            "expression": {
                                                                                                "argumentTypes": [
                                                                                                    {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                        "typeString": "bytes32"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_stringliteral_014ab85ea8e748688cc6784b5e57ac1916c5079c4b0ea7171a3ee030794a44d0",
                                                                                                        "typeString": "literal_string \"withdrawl\""
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4461,
                                                                                                "name": "payFee",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 5595,
                                                                                                "src": "9966:6:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$_t_uint256_$",
                                                                                                    "typeString": "function (address,uint256,uint256,bytes32,bytes32) returns (uint256,uint256)"
                                                                                                }
                                                                                            },
                                                                                            "id": 4469,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "kind": "functionCall",
                                                                                            "lValueRequested": false,
                                                                                            "names": [],
                                                                                            "nodeType": "FunctionCall",
                                                                                            "src": "9966:56:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
                                                                                                "typeString": "tuple(uint256,uint256)"
                                                                                            }
                                                                                        },
                                                                                        "src": "9948:74:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_tuple$__$",
                                                                                            "typeString": "tuple()"
                                                                                        }
                                                                                    },
                                                                                    "id": 4471,
                                                                                    "nodeType": "ExpressionStatement",
                                                                                    "src": "9948:74:15"
                                                                                },
                                                                                {
                                                                                    "condition": {
                                                                                        "argumentTypes": null,
                                                                                        "commonType": {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        },
                                                                                        "id": 4476,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "leftExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "baseExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 4472,
                                                                                                "name": "currencies",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 3649,
                                                                                                "src": "10108:10:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                    "typeString": "bytes32[] storage ref"
                                                                                                }
                                                                                            },
                                                                                            "id": 4474,
                                                                                            "indexExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 4473,
                                                                                                "name": "i",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 4307,
                                                                                                "src": "10119:1:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "IndexAccess",
                                                                                            "src": "10108:13:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                "typeString": "bytes32"
                                                                                            }
                                                                                        },
                                                                                        "nodeType": "BinaryOperation",
                                                                                        "operator": "==",
                                                                                        "rightExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "hexValue": "6574686572",
                                                                                            "id": 4475,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "kind": "string",
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "Literal",
                                                                                            "src": "10123:7:15",
                                                                                            "subdenomination": null,
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_stringliteral_13730b0d8e1bdbdc293b62ba010b1eede56b412ea2980defabe3d0b6c7844c3a",
                                                                                                "typeString": "literal_string \"ether\""
                                                                                            },
                                                                                            "value": "ether"
                                                                                        },
                                                                                        "src": "10108:22:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bool",
                                                                                            "typeString": "bool"
                                                                                        }
                                                                                    },
                                                                                    "falseBody": {
                                                                                        "condition": {
                                                                                            "argumentTypes": null,
                                                                                            "commonType": {
                                                                                                "typeIdentifier": "t_bool",
                                                                                                "typeString": "bool"
                                                                                            },
                                                                                            "id": 4494,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "leftExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "arguments": [
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4489,
                                                                                                            "name": "currencies",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 3649,
                                                                                                            "src": "10293:10:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                "typeString": "bytes32[] storage ref"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4491,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4490,
                                                                                                            "name": "i",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 4307,
                                                                                                            "src": "10304:1:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "10293:13:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        }
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        }
                                                                                                    ],
                                                                                                    "expression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4487,
                                                                                                        "name": "_factory",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 3633,
                                                                                                        "src": "10263:8:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                                                            "typeString": "contract ViaFactory"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4488,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "memberName": "checkSupportForToken",
                                                                                                    "nodeType": "MemberAccess",
                                                                                                    "referencedDeclaration": 8394,
                                                                                                    "src": "10263:29:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                                                                                                        "typeString": "function (bytes32) view external returns (bool)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 4492,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "kind": "functionCall",
                                                                                                "lValueRequested": false,
                                                                                                "names": [],
                                                                                                "nodeType": "FunctionCall",
                                                                                                "src": "10263:44:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_bool",
                                                                                                    "typeString": "bool"
                                                                                                }
                                                                                            },
                                                                                            "nodeType": "BinaryOperation",
                                                                                            "operator": "==",
                                                                                            "rightExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "hexValue": "74727565",
                                                                                                "id": 4493,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": true,
                                                                                                "kind": "bool",
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "Literal",
                                                                                                "src": "10309:4:15",
                                                                                                "subdenomination": null,
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_bool",
                                                                                                    "typeString": "bool"
                                                                                                },
                                                                                                "value": "true"
                                                                                            },
                                                                                            "src": "10263:50:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_bool",
                                                                                                "typeString": "bool"
                                                                                            }
                                                                                        },
                                                                                        "falseBody": {
                                                                                            "condition": {
                                                                                                "argumentTypes": null,
                                                                                                "commonType": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                "id": 4523,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "leftExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "arguments": [
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4515,
                                                                                                                "name": "currencies",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 3649,
                                                                                                                "src": "10619:10:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                    "typeString": "bytes32[] storage ref"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4517,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4516,
                                                                                                                "name": "i",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 4307,
                                                                                                                "src": "10630:1:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "10619:13:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                                "typeString": "bytes32"
                                                                                                            }
                                                                                                        },
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexValue": "56696143617368",
                                                                                                            "id": 4518,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "kind": "string",
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "Literal",
                                                                                                            "src": "10634:9:15",
                                                                                                            "subdenomination": null,
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                                "typeString": "literal_string \"ViaCash\""
                                                                                                            },
                                                                                                            "value": "ViaCash"
                                                                                                        }
                                                                                                    ],
                                                                                                    "expression": {
                                                                                                        "argumentTypes": [
                                                                                                            {
                                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                                "typeString": "bytes32"
                                                                                                            },
                                                                                                            {
                                                                                                                "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                                "typeString": "literal_string \"ViaCash\""
                                                                                                            }
                                                                                                        ],
                                                                                                        "expression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4513,
                                                                                                            "name": "_factory",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 3633,
                                                                                                            "src": "10591:8:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                                                                "typeString": "contract ViaFactory"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4514,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "memberName": "getTokenByNameType",
                                                                                                        "nodeType": "MemberAccess",
                                                                                                        "referencedDeclaration": 8276,
                                                                                                        "src": "10591:27:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                                                                                                            "typeString": "function (bytes32,bytes32) view external returns (address)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4519,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "kind": "functionCall",
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [],
                                                                                                    "nodeType": "FunctionCall",
                                                                                                    "src": "10591:53:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                "nodeType": "BinaryOperation",
                                                                                                "operator": "!=",
                                                                                                "rightExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "arguments": [
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexValue": "307830",
                                                                                                            "id": 4521,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "kind": "number",
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "Literal",
                                                                                                            "src": "10654:3:15",
                                                                                                            "subdenomination": null,
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                                                                "typeString": "int_const 0"
                                                                                                            },
                                                                                                            "value": "0x0"
                                                                                                        }
                                                                                                    ],
                                                                                                    "expression": {
                                                                                                        "argumentTypes": [
                                                                                                            {
                                                                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                                                                "typeString": "int_const 0"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4520,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": true,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "ElementaryTypeNameExpression",
                                                                                                        "src": "10646:7:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_type$_t_address_$",
                                                                                                            "typeString": "type(address)"
                                                                                                        },
                                                                                                        "typeName": "address"
                                                                                                    },
                                                                                                    "id": 4522,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "kind": "typeConversion",
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [],
                                                                                                    "nodeType": "FunctionCall",
                                                                                                    "src": "10646:12:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address_payable",
                                                                                                        "typeString": "address payable"
                                                                                                    }
                                                                                                },
                                                                                                "src": "10591:67:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_bool",
                                                                                                    "typeString": "bool"
                                                                                                }
                                                                                            },
                                                                                            "falseBody": {
                                                                                                "condition": {
                                                                                                    "argumentTypes": null,
                                                                                                    "commonType": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    },
                                                                                                    "id": 4564,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "leftExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4558,
                                                                                                            "name": "currencyIndex",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 3653,
                                                                                                            "src": "11159:13:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                                                                                "typeString": "mapping(bytes32 => uint256)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4562,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4559,
                                                                                                                "name": "currencies",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 3649,
                                                                                                                "src": "11173:10:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                    "typeString": "bytes32[] storage ref"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4561,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4560,
                                                                                                                "name": "i",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 4307,
                                                                                                                "src": "11184:1:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "11173:13:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                                "typeString": "bytes32"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "11159:28:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    "nodeType": "BinaryOperation",
                                                                                                    "operator": "!=",
                                                                                                    "rightExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "hexValue": "30",
                                                                                                        "id": 4563,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": true,
                                                                                                        "kind": "number",
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "Literal",
                                                                                                        "src": "11189:1:15",
                                                                                                        "subdenomination": null,
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                                                            "typeString": "int_const 0"
                                                                                                        },
                                                                                                        "value": "0"
                                                                                                    },
                                                                                                    "src": "11159:31:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_bool",
                                                                                                        "typeString": "bool"
                                                                                                    }
                                                                                                },
                                                                                                "falseBody": null,
                                                                                                "id": 4584,
                                                                                                "nodeType": "IfStatement",
                                                                                                "src": "11156:304:15",
                                                                                                "trueBody": {
                                                                                                    "id": 4583,
                                                                                                    "nodeType": "Block",
                                                                                                    "src": "11191:269:15",
                                                                                                    "statements": [
                                                                                                        {
                                                                                                            "expression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "arguments": [
                                                                                                                    {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "expression": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "baseExpression": {
                                                                                                                                "argumentTypes": null,
                                                                                                                                "baseExpression": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "id": 4568,
                                                                                                                                    "name": "_deposits",
                                                                                                                                    "nodeType": "Identifier",
                                                                                                                                    "overloadedDeclarations": [],
                                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                                    "src": "11361:9:15",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                                                                        "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "id": 4570,
                                                                                                                                "indexExpression": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "id": 4569,
                                                                                                                                    "name": "party",
                                                                                                                                    "nodeType": "Identifier",
                                                                                                                                    "overloadedDeclarations": [],
                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                    "src": "11371:5:15",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                                        "typeString": "address"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "isConstant": false,
                                                                                                                                "isLValue": true,
                                                                                                                                "isPure": false,
                                                                                                                                "lValueRequested": false,
                                                                                                                                "nodeType": "IndexAccess",
                                                                                                                                "src": "11361:16:15",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                                                                    "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "id": 4574,
                                                                                                                            "indexExpression": {
                                                                                                                                "argumentTypes": null,
                                                                                                                                "baseExpression": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "id": 4571,
                                                                                                                                    "name": "currencies",
                                                                                                                                    "nodeType": "Identifier",
                                                                                                                                    "overloadedDeclarations": [],
                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                    "src": "11378:10:15",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                                        "typeString": "bytes32[] storage ref"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "id": 4573,
                                                                                                                                "indexExpression": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "id": 4572,
                                                                                                                                    "name": "i",
                                                                                                                                    "nodeType": "Identifier",
                                                                                                                                    "overloadedDeclarations": [],
                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                    "src": "11389:1:15",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                                        "typeString": "uint256"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "isConstant": false,
                                                                                                                                "isLValue": true,
                                                                                                                                "isPure": false,
                                                                                                                                "lValueRequested": false,
                                                                                                                                "nodeType": "IndexAccess",
                                                                                                                                "src": "11378:13:15",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                                    "typeString": "bytes32"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "nodeType": "IndexAccess",
                                                                                                                            "src": "11361:31:15",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                                                                "typeString": "struct Cash.deposit storage ref"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 4575,
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": true,
                                                                                                                        "isPure": false,
                                                                                                                        "lValueRequested": false,
                                                                                                                        "memberName": "depositor",
                                                                                                                        "nodeType": "MemberAccess",
                                                                                                                        "referencedDeclaration": 3645,
                                                                                                                        "src": "11361:41:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4576,
                                                                                                                        "name": "party",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 4288,
                                                                                                                        "src": "11404:5:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "baseExpression": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "id": 4577,
                                                                                                                            "name": "currencies",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                            "src": "11411:10:15",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                                "typeString": "bytes32[] storage ref"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 4579,
                                                                                                                        "indexExpression": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "id": 4578,
                                                                                                                            "name": "i",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                            "src": "11422:1:15",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": true,
                                                                                                                        "isPure": false,
                                                                                                                        "lValueRequested": false,
                                                                                                                        "nodeType": "IndexAccess",
                                                                                                                        "src": "11411:13:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                                            "typeString": "bytes32"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4580,
                                                                                                                        "name": "value",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 4342,
                                                                                                                        "src": "11426:5:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    }
                                                                                                                ],
                                                                                                                "expression": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                                            "typeString": "bytes32"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "expression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4565,
                                                                                                                        "name": "_oracle",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 3637,
                                                                                                                        "src": "11346:7:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_contract$_ViaOracle_$8427",
                                                                                                                            "typeString": "contract ViaOracle"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 4567,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "memberName": "payOut",
                                                                                                                    "nodeType": "MemberAccess",
                                                                                                                    "referencedDeclaration": 8426,
                                                                                                                    "src": "11346:14:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$returns$__$",
                                                                                                                        "typeString": "function (address,address,bytes32,uint256) external"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4581,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "kind": "functionCall",
                                                                                                                "lValueRequested": false,
                                                                                                                "names": [],
                                                                                                                "nodeType": "FunctionCall",
                                                                                                                "src": "11346:86:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_tuple$__$",
                                                                                                                    "typeString": "tuple()"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4582,
                                                                                                            "nodeType": "ExpressionStatement",
                                                                                                            "src": "11346:86:15"
                                                                                                        }
                                                                                                    ]
                                                                                                }
                                                                                            },
                                                                                            "id": 4585,
                                                                                            "nodeType": "IfStatement",
                                                                                            "src": "10588:872:15",
                                                                                            "trueBody": {
                                                                                                "id": 4557,
                                                                                                "nodeType": "Block",
                                                                                                "src": "10659:466:15",
                                                                                                "statements": [
                                                                                                    {
                                                                                                        "assignments": [
                                                                                                            4525
                                                                                                        ],
                                                                                                        "declarations": [
                                                                                                            {
                                                                                                                "constant": false,
                                                                                                                "id": 4525,
                                                                                                                "name": "cashToken",
                                                                                                                "nodeType": "VariableDeclaration",
                                                                                                                "scope": 4557,
                                                                                                                "src": "10760:17:15",
                                                                                                                "stateVariable": false,
                                                                                                                "storageLocation": "default",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                },
                                                                                                                "typeName": {
                                                                                                                    "id": 4524,
                                                                                                                    "name": "address",
                                                                                                                    "nodeType": "ElementaryTypeName",
                                                                                                                    "src": "10760:7:15",
                                                                                                                    "stateMutability": "nonpayable",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    }
                                                                                                                },
                                                                                                                "value": null,
                                                                                                                "visibility": "internal"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4533,
                                                                                                        "initialValue": {
                                                                                                            "argumentTypes": null,
                                                                                                            "arguments": [
                                                                                                                {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "baseExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4528,
                                                                                                                        "name": "currencies",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 3649,
                                                                                                                        "src": "10808:10:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                            "typeString": "bytes32[] storage ref"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 4530,
                                                                                                                    "indexExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4529,
                                                                                                                        "name": "i",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 4307,
                                                                                                                        "src": "10819:1:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                    "src": "10808:13:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                                        "typeString": "bytes32"
                                                                                                                    }
                                                                                                                },
                                                                                                                {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "hexValue": "56696143617368",
                                                                                                                    "id": 4531,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "kind": "string",
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "Literal",
                                                                                                                    "src": "10822:9:15",
                                                                                                                    "subdenomination": null,
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                                        "typeString": "literal_string \"ViaCash\""
                                                                                                                    },
                                                                                                                    "value": "ViaCash"
                                                                                                                }
                                                                                                            ],
                                                                                                            "expression": {
                                                                                                                "argumentTypes": [
                                                                                                                    {
                                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                                        "typeString": "bytes32"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                                        "typeString": "literal_string \"ViaCash\""
                                                                                                                    }
                                                                                                                ],
                                                                                                                "expression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4526,
                                                                                                                    "name": "_factory",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 3633,
                                                                                                                    "src": "10780:8:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                                                                        "typeString": "contract ViaFactory"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4527,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "memberName": "getTokenByNameType",
                                                                                                                "nodeType": "MemberAccess",
                                                                                                                "referencedDeclaration": 8276,
                                                                                                                "src": "10780:27:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                                                                                                                    "typeString": "function (bytes32,bytes32) view external returns (address)"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4532,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "kind": "functionCall",
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [],
                                                                                                            "nodeType": "FunctionCall",
                                                                                                            "src": "10780:52:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            }
                                                                                                        },
                                                                                                        "nodeType": "VariableDeclarationStatement",
                                                                                                        "src": "10760:72:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "condition": {
                                                                                                            "argumentTypes": null,
                                                                                                            "commonType": {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            },
                                                                                                            "id": 4538,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "leftExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4534,
                                                                                                                "name": "cashToken",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 4525,
                                                                                                                "src": "10866:9:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            },
                                                                                                            "nodeType": "BinaryOperation",
                                                                                                            "operator": "==",
                                                                                                            "rightExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "arguments": [
                                                                                                                    {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4536,
                                                                                                                        "name": "this",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 13077,
                                                                                                                        "src": "10885:4:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                                                            "typeString": "contract Cash"
                                                                                                                        }
                                                                                                                    }
                                                                                                                ],
                                                                                                                "expression": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                                                            "typeString": "contract Cash"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "id": 4535,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "ElementaryTypeNameExpression",
                                                                                                                    "src": "10877:7:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_type$_t_address_$",
                                                                                                                        "typeString": "type(address)"
                                                                                                                    },
                                                                                                                    "typeName": "address"
                                                                                                                },
                                                                                                                "id": 4537,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "kind": "typeConversion",
                                                                                                                "lValueRequested": false,
                                                                                                                "names": [],
                                                                                                                "nodeType": "FunctionCall",
                                                                                                                "src": "10877:13:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address_payable",
                                                                                                                    "typeString": "address payable"
                                                                                                                }
                                                                                                            },
                                                                                                            "src": "10866:24:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_bool",
                                                                                                                "typeString": "bool"
                                                                                                            }
                                                                                                        },
                                                                                                        "falseBody": {
                                                                                                            "expression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "arguments": [
                                                                                                                    {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4552,
                                                                                                                        "name": "value",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 4342,
                                                                                                                        "src": "11084:5:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4553,
                                                                                                                        "name": "party",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 4288,
                                                                                                                        "src": "11091:5:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    }
                                                                                                                ],
                                                                                                                "expression": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "expression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "arguments": [
                                                                                                                            {
                                                                                                                                "argumentTypes": null,
                                                                                                                                "arguments": [
                                                                                                                                    {
                                                                                                                                        "argumentTypes": null,
                                                                                                                                        "arguments": [
                                                                                                                                            {
                                                                                                                                                "argumentTypes": null,
                                                                                                                                                "id": 4547,
                                                                                                                                                "name": "cashToken",
                                                                                                                                                "nodeType": "Identifier",
                                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                                "referencedDeclaration": 4525,
                                                                                                                                                "src": "11046:9:15",
                                                                                                                                                "typeDescriptions": {
                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                    "typeString": "address"
                                                                                                                                                }
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "expression": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                    "typeString": "address"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "id": 4546,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": true,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "nodeType": "ElementaryTypeNameExpression",
                                                                                                                                            "src": "11038:7:15",
                                                                                                                                            "typeDescriptions": {
                                                                                                                                                "typeIdentifier": "t_type$_t_uint160_$",
                                                                                                                                                "typeString": "type(uint160)"
                                                                                                                                            },
                                                                                                                                            "typeName": "uint160"
                                                                                                                                        },
                                                                                                                                        "id": 4548,
                                                                                                                                        "isConstant": false,
                                                                                                                                        "isLValue": false,
                                                                                                                                        "isPure": false,
                                                                                                                                        "kind": "typeConversion",
                                                                                                                                        "lValueRequested": false,
                                                                                                                                        "names": [],
                                                                                                                                        "nodeType": "FunctionCall",
                                                                                                                                        "src": "11038:18:15",
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_uint160",
                                                                                                                                            "typeString": "uint160"
                                                                                                                                        }
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "expression": {
                                                                                                                                    "argumentTypes": [
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint160",
                                                                                                                                            "typeString": "uint160"
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "id": 4545,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": true,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "nodeType": "ElementaryTypeNameExpression",
                                                                                                                                    "src": "11030:7:15",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_type$_t_address_$",
                                                                                                                                        "typeString": "type(address)"
                                                                                                                                    },
                                                                                                                                    "typeName": "address"
                                                                                                                                },
                                                                                                                                "id": 4549,
                                                                                                                                "isConstant": false,
                                                                                                                                "isLValue": false,
                                                                                                                                "isPure": false,
                                                                                                                                "kind": "typeConversion",
                                                                                                                                "lValueRequested": false,
                                                                                                                                "names": [],
                                                                                                                                "nodeType": "FunctionCall",
                                                                                                                                "src": "11030:27:15",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_address_payable",
                                                                                                                                    "typeString": "address payable"
                                                                                                                                }
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "expression": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_address_payable",
                                                                                                                                    "typeString": "address payable"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "id": 4544,
                                                                                                                            "name": "Cash",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 5750,
                                                                                                                            "src": "11025:4:15",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_type$_t_contract$_Cash_$5750_$",
                                                                                                                                "typeString": "type(contract Cash)"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 4550,
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": false,
                                                                                                                        "isPure": false,
                                                                                                                        "kind": "typeConversion",
                                                                                                                        "lValueRequested": false,
                                                                                                                        "names": [],
                                                                                                                        "nodeType": "FunctionCall",
                                                                                                                        "src": "11025:33:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                                                            "typeString": "contract Cash"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 4551,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "memberName": "requestDeductFromBalance",
                                                                                                                    "nodeType": "MemberAccess",
                                                                                                                    "referencedDeclaration": 5222,
                                                                                                                    "src": "11025:58:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$returns$_t_uint256_$",
                                                                                                                        "typeString": "function (uint256,address) external returns (uint256)"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4554,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "kind": "functionCall",
                                                                                                                "lValueRequested": false,
                                                                                                                "names": [],
                                                                                                                "nodeType": "FunctionCall",
                                                                                                                "src": "11025:72:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4555,
                                                                                                            "nodeType": "ExpressionStatement",
                                                                                                            "src": "11025:72:15"
                                                                                                        },
                                                                                                        "id": 4556,
                                                                                                        "nodeType": "IfStatement",
                                                                                                        "src": "10863:234:15",
                                                                                                        "trueBody": {
                                                                                                            "expression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "arguments": [
                                                                                                                    {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4540,
                                                                                                                        "name": "value",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 4342,
                                                                                                                        "src": "10943:5:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4541,
                                                                                                                        "name": "party",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 4288,
                                                                                                                        "src": "10950:5:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    }
                                                                                                                ],
                                                                                                                "expression": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "id": 4539,
                                                                                                                    "name": "deductFromBalance",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 5278,
                                                                                                                    "src": "10925:17:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_uint256_$",
                                                                                                                        "typeString": "function (uint256,address) returns (uint256)"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4542,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "kind": "functionCall",
                                                                                                                "lValueRequested": false,
                                                                                                                "names": [],
                                                                                                                "nodeType": "FunctionCall",
                                                                                                                "src": "10925:31:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4543,
                                                                                                            "nodeType": "ExpressionStatement",
                                                                                                            "src": "10925:31:15"
                                                                                                        }
                                                                                                    }
                                                                                                ]
                                                                                            }
                                                                                        },
                                                                                        "id": 4586,
                                                                                        "nodeType": "IfStatement",
                                                                                        "src": "10260:1200:15",
                                                                                        "trueBody": {
                                                                                            "id": 4512,
                                                                                            "nodeType": "Block",
                                                                                            "src": "10314:243:15",
                                                                                            "statements": [
                                                                                                {
                                                                                                    "assignments": [
                                                                                                        4496
                                                                                                    ],
                                                                                                    "declarations": [
                                                                                                        {
                                                                                                            "constant": false,
                                                                                                            "id": 4496,
                                                                                                            "name": "token",
                                                                                                            "nodeType": "VariableDeclaration",
                                                                                                            "scope": 4512,
                                                                                                            "src": "10406:13:15",
                                                                                                            "stateVariable": false,
                                                                                                            "storageLocation": "default",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            },
                                                                                                            "typeName": {
                                                                                                                "id": 4495,
                                                                                                                "name": "address",
                                                                                                                "nodeType": "ElementaryTypeName",
                                                                                                                "src": "10406:7:15",
                                                                                                                "stateMutability": "nonpayable",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            },
                                                                                                            "value": null,
                                                                                                            "visibility": "internal"
                                                                                                        }
                                                                                                    ],
                                                                                                    "id": 4503,
                                                                                                    "initialValue": {
                                                                                                        "argumentTypes": null,
                                                                                                        "arguments": [
                                                                                                            {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4499,
                                                                                                                    "name": "currencies",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                    "src": "10448:10:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                                        "typeString": "bytes32[] storage ref"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4501,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 4500,
                                                                                                                    "name": "i",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                    "src": "10459:1:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "10448:13:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                    "typeString": "bytes32"
                                                                                                                }
                                                                                                            }
                                                                                                        ],
                                                                                                        "expression": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                    "typeString": "bytes32"
                                                                                                                }
                                                                                                            ],
                                                                                                            "expression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4497,
                                                                                                                "name": "_factory",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 3633,
                                                                                                                "src": "10422:8:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                                                                    "typeString": "contract ViaFactory"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4498,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "memberName": "getCurrencyToken",
                                                                                                            "nodeType": "MemberAccess",
                                                                                                            "referencedDeclaration": 8401,
                                                                                                            "src": "10422:25:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                                                                                                "typeString": "function (bytes32) view external returns (address)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4502,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": false,
                                                                                                        "kind": "functionCall",
                                                                                                        "lValueRequested": false,
                                                                                                        "names": [],
                                                                                                        "nodeType": "FunctionCall",
                                                                                                        "src": "10422:40:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    "nodeType": "VariableDeclarationStatement",
                                                                                                    "src": "10406:56:15"
                                                                                                },
                                                                                                {
                                                                                                    "expression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "arguments": [
                                                                                                            {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4508,
                                                                                                                "name": "party",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 4288,
                                                                                                                "src": "10516:5:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            },
                                                                                                            {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 4509,
                                                                                                                "name": "value",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 4342,
                                                                                                                "src": "10523:5:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            }
                                                                                                        ],
                                                                                                        "expression": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                },
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            ],
                                                                                                            "expression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "arguments": [
                                                                                                                    {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 4505,
                                                                                                                        "name": "token",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 4496,
                                                                                                                        "src": "10500:5:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    }
                                                                                                                ],
                                                                                                                "expression": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "id": 4504,
                                                                                                                    "name": "IERC20",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 409,
                                                                                                                    "src": "10493:6:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$409_$",
                                                                                                                        "typeString": "type(contract IERC20)"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 4506,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "kind": "typeConversion",
                                                                                                                "lValueRequested": false,
                                                                                                                "names": [],
                                                                                                                "nodeType": "FunctionCall",
                                                                                                                "src": "10493:13:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_contract$_IERC20_$409",
                                                                                                                    "typeString": "contract IERC20"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 4507,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "memberName": "transfer",
                                                                                                            "nodeType": "MemberAccess",
                                                                                                            "referencedDeclaration": 363,
                                                                                                            "src": "10493:22:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                                                                                "typeString": "function (address,uint256) external returns (bool)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4510,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": false,
                                                                                                        "kind": "functionCall",
                                                                                                        "lValueRequested": false,
                                                                                                        "names": [],
                                                                                                        "nodeType": "FunctionCall",
                                                                                                        "src": "10493:36:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_bool",
                                                                                                            "typeString": "bool"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4511,
                                                                                                    "nodeType": "ExpressionStatement",
                                                                                                    "src": "10493:36:15"
                                                                                                }
                                                                                            ]
                                                                                        }
                                                                                    },
                                                                                    "id": 4587,
                                                                                    "nodeType": "IfStatement",
                                                                                    "src": "10105:1355:15",
                                                                                    "trueBody": {
                                                                                        "id": 4486,
                                                                                        "nodeType": "Block",
                                                                                        "src": "10131:98:15",
                                                                                        "statements": [
                                                                                            {
                                                                                                "expression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "arguments": [
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 4483,
                                                                                                            "name": "value",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 4342,
                                                                                                            "src": "10195:5:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        }
                                                                                                    ],
                                                                                                    "expression": {
                                                                                                        "argumentTypes": [
                                                                                                            {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        ],
                                                                                                        "expression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "arguments": [
                                                                                                                {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "arguments": [
                                                                                                                        {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "id": 4479,
                                                                                                                            "name": "party",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                            "src": "10178:5:15",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                "typeString": "address"
                                                                                                                            }
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "expression": {
                                                                                                                        "argumentTypes": [
                                                                                                                            {
                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                "typeString": "address"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4478,
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": false,
                                                                                                                        "isPure": true,
                                                                                                                        "lValueRequested": false,
                                                                                                                        "nodeType": "ElementaryTypeNameExpression",
                                                                                                                        "src": "10170:7:15",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_type$_t_uint160_$",
                                                                                                                            "typeString": "type(uint160)"
                                                                                                                        },
                                                                                                                        "typeName": "uint160"
                                                                                                                    },
                                                                                                                    "id": 4480,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "kind": "typeConversion",
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [],
                                                                                                                    "nodeType": "FunctionCall",
                                                                                                                    "src": "10170:14:15",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint160",
                                                                                                                        "typeString": "uint160"
                                                                                                                    }
                                                                                                                }
                                                                                                            ],
                                                                                                            "expression": {
                                                                                                                "argumentTypes": [
                                                                                                                    {
                                                                                                                        "typeIdentifier": "t_uint160",
                                                                                                                        "typeString": "uint160"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4477,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": true,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "ElementaryTypeNameExpression",
                                                                                                                "src": "10162:7:15",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_type$_t_address_$",
                                                                                                                    "typeString": "type(address)"
                                                                                                                },
                                                                                                                "typeName": "address"
                                                                                                            },
                                                                                                            "id": 4481,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "kind": "typeConversion",
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [],
                                                                                                            "nodeType": "FunctionCall",
                                                                                                            "src": "10162:23:15",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_address_payable",
                                                                                                                "typeString": "address payable"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 4482,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "memberName": "transfer",
                                                                                                        "nodeType": "MemberAccess",
                                                                                                        "referencedDeclaration": null,
                                                                                                        "src": "10162:32:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                                                                                                            "typeString": "function (uint256)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 4484,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "kind": "functionCall",
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [],
                                                                                                    "nodeType": "FunctionCall",
                                                                                                    "src": "10162:39:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_tuple$__$",
                                                                                                        "typeString": "tuple()"
                                                                                                    }
                                                                                                },
                                                                                                "id": 4485,
                                                                                                "nodeType": "ExpressionStatement",
                                                                                                "src": "10162:39:15"
                                                                                            }
                                                                                        ]
                                                                                    }
                                                                                },
                                                                                {
                                                                                    "eventCall": {
                                                                                        "argumentTypes": null,
                                                                                        "arguments": [
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "id": 4589,
                                                                                                "name": "party",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 4288,
                                                                                                "src": "11546:5:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4590,
                                                                                                    "name": "currencies",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 3649,
                                                                                                    "src": "11553:10:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                        "typeString": "bytes32[] storage ref"
                                                                                                    }
                                                                                                },
                                                                                                "id": 4592,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 4591,
                                                                                                    "name": "i",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4307,
                                                                                                    "src": "11564:1:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "11553:13:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                }
                                                                                            },
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "id": 4593,
                                                                                                "name": "value",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 4342,
                                                                                                "src": "11568:5:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "id": 4594,
                                                                                                "name": "amount",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 4286,
                                                                                                "src": "11575:6:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "arguments": [
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 4596,
                                                                                                        "name": "party",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 4288,
                                                                                                        "src": "11593:5:15",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "id": 4595,
                                                                                                    "name": "balanceOf",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 12173,
                                                                                                    "src": "11583:9:15",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
                                                                                                        "typeString": "function (address) view returns (uint256)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 4597,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "kind": "functionCall",
                                                                                                "lValueRequested": false,
                                                                                                "names": [],
                                                                                                "nodeType": "FunctionCall",
                                                                                                "src": "11583:16:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            }
                                                                                        ],
                                                                                        "expression": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "id": 4588,
                                                                                            "name": "CashRedeemed",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 3687,
                                                                                            "src": "11533:12:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
                                                                                                "typeString": "function (address,bytes32,uint256,uint256,uint256)"
                                                                                            }
                                                                                        },
                                                                                        "id": 4598,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "kind": "functionCall",
                                                                                        "lValueRequested": false,
                                                                                        "names": [],
                                                                                        "nodeType": "FunctionCall",
                                                                                        "src": "11533:67:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_tuple$__$",
                                                                                            "typeString": "tuple()"
                                                                                        }
                                                                                    },
                                                                                    "id": 4599,
                                                                                    "nodeType": "EmitStatement",
                                                                                    "src": "11528:72:15"
                                                                                }
                                                                            ]
                                                                        }
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 4705,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftHandSide": {
                                                                                "argumentTypes": null,
                                                                                "id": 4703,
                                                                                "name": "amount",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 4286,
                                                                                "src": "12816:6:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "nodeType": "Assignment",
                                                                            "operator": "=",
                                                                            "rightHandSide": {
                                                                                "argumentTypes": null,
                                                                                "hexValue": "30",
                                                                                "id": 4704,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "number",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "12825:1:15",
                                                                                "subdenomination": null,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                                    "typeString": "int_const 0"
                                                                                },
                                                                                "value": "0"
                                                                            },
                                                                            "src": "12816:10:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "id": 4706,
                                                                        "nodeType": "ExpressionStatement",
                                                                        "src": "12816:10:15"
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 4709,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftHandSide": {
                                                                                "argumentTypes": null,
                                                                                "id": 4707,
                                                                                "name": "found",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 4298,
                                                                                "src": "12849:5:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                }
                                                                            },
                                                                            "nodeType": "Assignment",
                                                                            "operator": "=",
                                                                            "rightHandSide": {
                                                                                "argumentTypes": null,
                                                                                "hexValue": "74727565",
                                                                                "id": 4708,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "bool",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "12857:4:15",
                                                                                "subdenomination": null,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                },
                                                                                "value": "true"
                                                                            },
                                                                            "src": "12849:12:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bool",
                                                                                "typeString": "bool"
                                                                            }
                                                                        },
                                                                        "id": 4710,
                                                                        "nodeType": "ExpressionStatement",
                                                                        "src": "12849:12:15"
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 4715,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftHandSide": {
                                                                                "argumentTypes": null,
                                                                                "baseExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 4711,
                                                                                    "name": "_lock",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 3711,
                                                                                    "src": "12884:5:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                                                        "typeString": "mapping(bytes32 => bool)"
                                                                                    }
                                                                                },
                                                                                "id": 4713,
                                                                                "indexExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "hexValue": "72656465656d",
                                                                                    "id": 4712,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "kind": "string",
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "Literal",
                                                                                    "src": "12890:8:15",
                                                                                    "subdenomination": null,
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_stringliteral_26ef0a97332ad048ac544d8dfacdd43e128b9816d599fdd0310960904fa18609",
                                                                                        "typeString": "literal_string \"redeem\""
                                                                                    },
                                                                                    "value": "redeem"
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": true,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "12884:15:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                }
                                                                            },
                                                                            "nodeType": "Assignment",
                                                                            "operator": "=",
                                                                            "rightHandSide": {
                                                                                "argumentTypes": null,
                                                                                "hexValue": "66616c7365",
                                                                                "id": 4714,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "bool",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "12902:5:15",
                                                                                "subdenomination": null,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                },
                                                                                "value": "false"
                                                                            },
                                                                            "src": "12884:23:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bool",
                                                                                "typeString": "bool"
                                                                            }
                                                                        },
                                                                        "id": 4716,
                                                                        "nodeType": "ExpressionStatement",
                                                                        "src": "12884:23:15"
                                                                    }
                                                                ]
                                                            }
                                                        }
                                                    ]
                                                }
                                            }
                                        ]
                                    },
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "id": 4316,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "id": 4312,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "id": 4310,
                                                "name": "i",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4307,
                                                "src": "8758:1:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "<",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "id": 4311,
                                                "name": "length",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4302,
                                                "src": "8760:6:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "src": "8758:8:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "&&",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "id": 4315,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "id": 4313,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4286,
                                                "src": "8770:6:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": ">",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "30",
                                                "id": 4314,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8777:1:15",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_0_by_1",
                                                    "typeString": "int_const 0"
                                                },
                                                "value": "0"
                                            },
                                            "src": "8770:8:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "src": "8758:20:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 5105,
                                    "initializationExpression": {
                                        "assignments": [
                                            4307
                                        ],
                                        "declarations": [
                                            {
                                                "constant": false,
                                                "id": 4307,
                                                "name": "i",
                                                "nodeType": "VariableDeclaration",
                                                "scope": 5105,
                                                "src": "8748:6:15",
                                                "stateVariable": false,
                                                "storageLocation": "default",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "typeName": {
                                                    "id": 4306,
                                                    "name": "uint",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "8748:4:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "value": null,
                                                "visibility": "internal"
                                            }
                                        ],
                                        "id": 4309,
                                        "initialValue": {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 4308,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8755:1:15",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "nodeType": "VariableDeclarationStatement",
                                        "src": "8748:8:15"
                                    },
                                    "loopExpression": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 4318,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": false,
                                            "src": "8780:3:15",
                                            "subExpression": {
                                                "argumentTypes": null,
                                                "id": 4317,
                                                "name": "i",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4307,
                                                "src": "8780:1:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 4319,
                                        "nodeType": "ExpressionStatement",
                                        "src": "8780:3:15"
                                    },
                                    "nodeType": "ForStatement",
                                    "src": "8744:8539:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 5106,
                                        "name": "found",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4298,
                                        "src": "17300:5:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "functionReturnParameters": 4296,
                                    "id": 5107,
                                    "nodeType": "Return",
                                    "src": "17293:12:15"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5109,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "redeem",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4293,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4286,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5109,
                                    "src": "8573:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 4285,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8573:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4288,
                                    "name": "party",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5109,
                                    "src": "8589:13:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4287,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8589:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4290,
                                    "name": "operation",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5109,
                                    "src": "8604:17:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 4289,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8604:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4292,
                                    "name": "receiver",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5109,
                                    "src": "8623:16:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4291,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8623:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "8572:68:15"
                        },
                        "returnParameters": {
                            "id": 4296,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4295,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5109,
                                    "src": "8657:4:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 4294,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8657:4:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "8656:6:15"
                        },
                        "scope": 5750,
                        "src": "8557:8756:15",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 5187,
                            "nodeType": "Block",
                            "src": "17442:444:15",
                            "statements": [
                                {
                                    "assignments": [
                                        5125
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 5125,
                                            "name": "value",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 5187,
                                            "src": "17453:13:15",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 5124,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "17453:7:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 5145,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 5130,
                                                        "name": "amount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5111,
                                                        "src": "17507:6:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 5131,
                                                                    "name": "_deposits",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3659,
                                                                    "src": "17515:9:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                        "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                    }
                                                                },
                                                                "id": 5133,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 5132,
                                                                    "name": "party",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 5113,
                                                                    "src": "17525:5:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "17515:16:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                    "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                }
                                                            },
                                                            "id": 5135,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5134,
                                                                "name": "currency",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5115,
                                                                "src": "17532:8:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "17515:26:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                "typeString": "struct Cash.deposit storage ref"
                                                            }
                                                        },
                                                        "id": 5136,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "issuedAmount",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 3643,
                                                        "src": "17515:39:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 5128,
                                                        "name": "FixedPoint",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8909,
                                                        "src": "17488:10:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                            "typeString": "type(library FixedPoint)"
                                                        }
                                                    },
                                                    "id": 5129,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "divDown",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 8695,
                                                    "src": "17488:18:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                    }
                                                },
                                                "id": 5137,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "17488:67:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 5138,
                                                            "name": "_deposits",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3659,
                                                            "src": "17557:9:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                            }
                                                        },
                                                        "id": 5140,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 5139,
                                                            "name": "party",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5113,
                                                            "src": "17567:5:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "17557:16:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                            "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                        }
                                                    },
                                                    "id": 5142,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5141,
                                                        "name": "currency",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5115,
                                                        "src": "17574:8:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "17557:26:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                        "typeString": "struct Cash.deposit storage ref"
                                                    }
                                                },
                                                "id": 5143,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "depositAmount",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 3641,
                                                "src": "17557:40:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 5126,
                                                "name": "FixedPoint",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8909,
                                                "src": "17469:10:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                    "typeString": "type(library FixedPoint)"
                                                }
                                            },
                                            "id": 5127,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "mulDown",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8604,
                                            "src": "17469:18:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                            }
                                        },
                                        "id": 5144,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "17469:129:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "17453:145:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 5162,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5146,
                                                        "name": "_deposits",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3659,
                                                        "src": "17609:9:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                            "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                        }
                                                    },
                                                    "id": 5149,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5147,
                                                        "name": "party",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5113,
                                                        "src": "17619:5:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "17609:16:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                        "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                    }
                                                },
                                                "id": 5150,
                                                "indexExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5148,
                                                    "name": "currency",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5115,
                                                    "src": "17626:8:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "17609:26:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                    "typeString": "struct Cash.deposit storage ref"
                                                }
                                            },
                                            "id": 5151,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberName": "depositAmount",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 3641,
                                            "src": "17609:40:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5154,
                                                                "name": "_deposits",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3659,
                                                                "src": "17661:9:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                    "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                }
                                                            },
                                                            "id": 5156,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5155,
                                                                "name": "party",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5113,
                                                                "src": "17671:5:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "17661:16:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                            }
                                                        },
                                                        "id": 5158,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 5157,
                                                            "name": "currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5115,
                                                            "src": "17678:8:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "17661:26:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                            "typeString": "struct Cash.deposit storage ref"
                                                        }
                                                    },
                                                    "id": 5159,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "depositAmount",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 3641,
                                                    "src": "17661:40:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "argumentTypes": null,
                                                    "id": 5160,
                                                    "name": "value",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5125,
                                                    "src": "17703:5:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 5152,
                                                    "name": "Math",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10483,
                                                    "src": "17652:4:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                        "typeString": "type(library Math)"
                                                    }
                                                },
                                                "id": 5153,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sub",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 10300,
                                                "src": "17652:8:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 5161,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "17652:57:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "17609:100:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 5163,
                                    "nodeType": "ExpressionStatement",
                                    "src": "17609:100:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 5165,
                                                "name": "party",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5113,
                                                "src": "17754:5:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5166,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5111,
                                                "src": "17761:6:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 5164,
                                            "name": "_burn",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 12462,
                                            "src": "17748:5:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,uint256)"
                                            }
                                        },
                                        "id": 5167,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "17748:20:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5168,
                                    "nodeType": "ExpressionStatement",
                                    "src": "17748:20:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 5185,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5169,
                                                        "name": "_deposits",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3659,
                                                        "src": "17779:9:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                            "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                        }
                                                    },
                                                    "id": 5172,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5170,
                                                        "name": "party",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5113,
                                                        "src": "17789:5:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "17779:16:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                        "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                    }
                                                },
                                                "id": 5173,
                                                "indexExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5171,
                                                    "name": "currency",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5115,
                                                    "src": "17796:8:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "17779:26:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                    "typeString": "struct Cash.deposit storage ref"
                                                }
                                            },
                                            "id": 5174,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberName": "issuedAmount",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 3643,
                                            "src": "17779:39:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5177,
                                                                "name": "_deposits",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3659,
                                                                "src": "17830:9:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                    "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                }
                                                            },
                                                            "id": 5179,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5178,
                                                                "name": "party",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5113,
                                                                "src": "17840:5:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "17830:16:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                            }
                                                        },
                                                        "id": 5181,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 5180,
                                                            "name": "currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5115,
                                                            "src": "17847:8:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "17830:26:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                            "typeString": "struct Cash.deposit storage ref"
                                                        }
                                                    },
                                                    "id": 5182,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "issuedAmount",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 3643,
                                                    "src": "17830:39:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "argumentTypes": null,
                                                    "id": 5183,
                                                    "name": "amount",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5111,
                                                    "src": "17871:6:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 5175,
                                                    "name": "Math",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10483,
                                                    "src": "17821:4:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                        "typeString": "type(library Math)"
                                                    }
                                                },
                                                "id": 5176,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sub",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 10300,
                                                "src": "17821:8:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 5184,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "17821:57:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "17779:99:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 5186,
                                    "nodeType": "ExpressionStatement",
                                    "src": "17779:99:15"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5188,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 5118,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 13007,
                                            "src": "17408:3:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 5119,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": null,
                                        "src": "17408:10:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 5120,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 5117,
                                    "name": "onlyCustodian",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3665,
                                    "src": "17394:13:15",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "17394:25:15"
                            }
                        ],
                        "name": "burnCashTokens",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5116,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5111,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5188,
                                    "src": "17345:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5110,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "17345:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5113,
                                    "name": "party",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5188,
                                    "src": "17361:13:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5112,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "17361:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5115,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5188,
                                    "src": "17376:16:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 5114,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "17376:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "17344:49:15"
                        },
                        "returnParameters": {
                            "id": 5123,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5122,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5188,
                                    "src": "17437:4:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 5121,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "17437:4:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "17436:6:15"
                        },
                        "scope": 5750,
                        "src": "17321:565:15",
                        "stateMutability": "nonpayable",
                        "superFunction": 8211,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 5221,
                            "nodeType": "Block",
                            "src": "18036:168:15",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5212,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "id": 5204,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 5200,
                                                                    "name": "msg",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 13007,
                                                                    "src": "18072:3:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_magic_message",
                                                                        "typeString": "msg"
                                                                    }
                                                                },
                                                                "id": 5201,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "sender",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": null,
                                                                "src": "18072:10:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 5198,
                                                                "name": "_factory",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3633,
                                                                "src": "18055:8:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                    "typeString": "contract ViaFactory"
                                                                }
                                                            },
                                                            "id": 5199,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "getType",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8240,
                                                            "src": "18055:16:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$",
                                                                "typeString": "function (address) view external returns (bytes32)"
                                                            }
                                                        },
                                                        "id": 5202,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "18055:28:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "56696143617368",
                                                        "id": 5203,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "18087:9:15",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                            "typeString": "literal_string \"ViaCash\""
                                                        },
                                                        "value": "ViaCash"
                                                    },
                                                    "src": "18055:41:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "||",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "id": 5211,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 5207,
                                                                    "name": "msg",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 13007,
                                                                    "src": "18117:3:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_magic_message",
                                                                        "typeString": "msg"
                                                                    }
                                                                },
                                                                "id": 5208,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "sender",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": null,
                                                                "src": "18117:10:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 5205,
                                                                "name": "_factory",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3633,
                                                                "src": "18100:8:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                    "typeString": "contract ViaFactory"
                                                                }
                                                            },
                                                            "id": 5206,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "getType",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8240,
                                                            "src": "18100:16:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$",
                                                                "typeString": "function (address) view external returns (bytes32)"
                                                            }
                                                        },
                                                        "id": 5209,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "18100:28:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "566961426f6e64",
                                                        "id": 5210,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "18132:9:15",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_52973aa3d1d0b9b2038bddf6fa0399136f1ab1c5f89b7edd623ff24875d0ed1f",
                                                            "typeString": "literal_string \"ViaBond\""
                                                        },
                                                        "value": "ViaBond"
                                                    },
                                                    "src": "18100:41:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "src": "18055:86:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 5197,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "18047:7:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 5213,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "18047:95:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5214,
                                    "nodeType": "ExpressionStatement",
                                    "src": "18047:95:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "components": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 5216,
                                                        "name": "tokens",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5190,
                                                        "src": "18178:6:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 5217,
                                                        "name": "receiver",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5192,
                                                        "src": "18186:8:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 5215,
                                                    "name": "deductFromBalance",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5278,
                                                    "src": "18160:17:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_uint256_$",
                                                        "typeString": "function (uint256,address) returns (uint256)"
                                                    }
                                                },
                                                "id": 5218,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "18160:35:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "id": 5219,
                                        "isConstant": false,
                                        "isInlineArray": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "TupleExpression",
                                        "src": "18159:37:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 5196,
                                    "id": 5220,
                                    "nodeType": "Return",
                                    "src": "18153:43:15"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5222,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "requestDeductFromBalance",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5193,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5190,
                                    "name": "tokens",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5222,
                                    "src": "17976:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5189,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "17976:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5192,
                                    "name": "receiver",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5222,
                                    "src": "17992:16:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5191,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "17992:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "17975:34:15"
                        },
                        "returnParameters": {
                            "id": 5196,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5195,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5222,
                                    "src": "18028:7:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5194,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "18028:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "18027:9:15"
                        },
                        "scope": 5750,
                        "src": "17942:262:15",
                        "stateMutability": "nonpayable",
                        "superFunction": 8189,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 5277,
                            "nodeType": "Block",
                            "src": "18379:431:15",
                            "statements": [
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 5237,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5233,
                                                            "name": "this",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 13077,
                                                            "src": "18489:4:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_Cash_$5750",
                                                                "typeString": "contract Cash"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_contract$_Cash_$5750",
                                                                "typeString": "contract Cash"
                                                            }
                                                        ],
                                                        "id": 5232,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "nodeType": "ElementaryTypeNameExpression",
                                                        "src": "18481:7:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_address_$",
                                                            "typeString": "type(address)"
                                                        },
                                                        "typeName": "address"
                                                    },
                                                    "id": 5234,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "typeConversion",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "18481:13:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                ],
                                                "id": 5231,
                                                "name": "balanceOf",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 12173,
                                                "src": "18471:9:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
                                                    "typeString": "function (address) view returns (uint256)"
                                                }
                                            },
                                            "id": 5235,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "18471:24:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">=",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "id": 5236,
                                            "name": "tokens",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5224,
                                            "src": "18499:6:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "18471:34:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "id": 5275,
                                        "nodeType": "Block",
                                        "src": "18612:191:15",
                                        "statements": [
                                            {
                                                "assignments": [
                                                    5250
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 5250,
                                                        "name": "balance",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 5275,
                                                        "src": "18627:15:15",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "typeName": {
                                                            "id": 5249,
                                                            "name": "uint256",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "18627:7:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 5260,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5253,
                                                            "name": "tokens",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5224,
                                                            "src": "18654:6:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 5256,
                                                                            "name": "this",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 13077,
                                                                            "src": "18680:4:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                "typeString": "contract Cash"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                "typeString": "contract Cash"
                                                                            }
                                                                        ],
                                                                        "id": 5255,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": true,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "ElementaryTypeNameExpression",
                                                                        "src": "18672:7:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_address_$",
                                                                            "typeString": "type(address)"
                                                                        },
                                                                        "typeName": "address"
                                                                    },
                                                                    "id": 5257,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "typeConversion",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "18672:13:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address_payable",
                                                                        "typeString": "address payable"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address_payable",
                                                                        "typeString": "address payable"
                                                                    }
                                                                ],
                                                                "id": 5254,
                                                                "name": "balanceOf",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 12173,
                                                                "src": "18662:9:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
                                                                    "typeString": "function (address) view returns (uint256)"
                                                                }
                                                            },
                                                            "id": 5258,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "18662:24:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 5251,
                                                            "name": "Math",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 10483,
                                                            "src": "18645:4:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                "typeString": "type(library Math)"
                                                            }
                                                        },
                                                        "id": 5252,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "sub",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 10300,
                                                        "src": "18645:8:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                        }
                                                    },
                                                    "id": 5259,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "18645:42:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "18627:60:15"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 5263,
                                                                    "name": "this",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 13077,
                                                                    "src": "18720:4:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_Cash_$5750",
                                                                        "typeString": "contract Cash"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_contract$_Cash_$5750",
                                                                        "typeString": "contract Cash"
                                                                    }
                                                                ],
                                                                "id": 5262,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "lValueRequested": false,
                                                                "nodeType": "ElementaryTypeNameExpression",
                                                                "src": "18712:7:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_address_$",
                                                                    "typeString": "type(address)"
                                                                },
                                                                "typeName": "address"
                                                            },
                                                            "id": 5264,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "18712:13:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5265,
                                                            "name": "receiver",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5226,
                                                            "src": "18727:8:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 5268,
                                                                            "name": "this",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 13077,
                                                                            "src": "18755:4:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                "typeString": "contract Cash"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                "typeString": "contract Cash"
                                                                            }
                                                                        ],
                                                                        "id": 5267,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": true,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "ElementaryTypeNameExpression",
                                                                        "src": "18747:7:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_address_$",
                                                                            "typeString": "type(address)"
                                                                        },
                                                                        "typeName": "address"
                                                                    },
                                                                    "id": 5269,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "typeConversion",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "18747:13:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address_payable",
                                                                        "typeString": "address payable"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address_payable",
                                                                        "typeString": "address payable"
                                                                    }
                                                                ],
                                                                "id": 5266,
                                                                "name": "balanceOf",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 12173,
                                                                "src": "18737:9:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
                                                                    "typeString": "function (address) view returns (uint256)"
                                                                }
                                                            },
                                                            "id": 5270,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "18737:24:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "id": 5261,
                                                        "name": "_transfer",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 12375,
                                                        "src": "18702:9:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                                                            "typeString": "function (address,address,uint256)"
                                                        }
                                                    },
                                                    "id": 5271,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "18702:60:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 5272,
                                                "nodeType": "ExpressionStatement",
                                                "src": "18702:60:15"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 5273,
                                                    "name": "balance",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5250,
                                                    "src": "18784:7:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "functionReturnParameters": 5230,
                                                "id": 5274,
                                                "nodeType": "Return",
                                                "src": "18777:14:15"
                                            }
                                        ]
                                    },
                                    "id": 5276,
                                    "nodeType": "IfStatement",
                                    "src": "18468:335:15",
                                    "trueBody": {
                                        "id": 5248,
                                        "nodeType": "Block",
                                        "src": "18506:92:15",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 5240,
                                                                    "name": "this",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 13077,
                                                                    "src": "18539:4:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_Cash_$5750",
                                                                        "typeString": "contract Cash"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_contract$_Cash_$5750",
                                                                        "typeString": "contract Cash"
                                                                    }
                                                                ],
                                                                "id": 5239,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "lValueRequested": false,
                                                                "nodeType": "ElementaryTypeNameExpression",
                                                                "src": "18531:7:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_address_$",
                                                                    "typeString": "type(address)"
                                                                },
                                                                "typeName": "address"
                                                            },
                                                            "id": 5241,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "18531:13:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5242,
                                                            "name": "receiver",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5226,
                                                            "src": "18546:8:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5243,
                                                            "name": "tokens",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5224,
                                                            "src": "18556:6:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "id": 5238,
                                                        "name": "_transfer",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 12375,
                                                        "src": "18521:9:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                                                            "typeString": "function (address,address,uint256)"
                                                        }
                                                    },
                                                    "id": 5244,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "18521:42:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 5245,
                                                "nodeType": "ExpressionStatement",
                                                "src": "18521:42:15"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "30",
                                                    "id": 5246,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "18585:1:15",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0"
                                                },
                                                "functionReturnParameters": 5230,
                                                "id": 5247,
                                                "nodeType": "Return",
                                                "src": "18578:8:15"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5278,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "deductFromBalance",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5227,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5224,
                                    "name": "tokens",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5278,
                                    "src": "18320:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5223,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "18320:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5226,
                                    "name": "receiver",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5278,
                                    "src": "18336:16:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5225,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "18336:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "18319:34:15"
                        },
                        "returnParameters": {
                            "id": 5230,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5229,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5278,
                                    "src": "18371:7:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5228,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "18371:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "18370:9:15"
                        },
                        "scope": 5750,
                        "src": "18293:517:15",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 5451,
                            "nodeType": "Block",
                            "src": "19047:2268:15",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5292,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5290,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 12542,
                                                    "src": "19105:6:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 5291,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "19115:5:15",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "19105:15:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 5289,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "19097:7:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 5293,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "19097:24:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5294,
                                    "nodeType": "ExpressionStatement",
                                    "src": "19097:24:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5300,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5297,
                                                            "name": "sender",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5280,
                                                            "src": "19177:6:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "id": 5296,
                                                        "name": "amlCheck",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5628,
                                                        "src": "19168:8:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
                                                            "typeString": "function (address) view returns (bool)"
                                                        }
                                                    },
                                                    "id": 5298,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "19168:16:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "74727565",
                                                    "id": 5299,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "19186:4:15",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "true"
                                                },
                                                "src": "19168:22:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 5295,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "19160:7:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 5301,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "19160:31:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5302,
                                    "nodeType": "ExpressionStatement",
                                    "src": "19160:31:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5308,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5305,
                                                            "name": "receiver",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5282,
                                                            "src": "19219:8:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "id": 5304,
                                                        "name": "amlCheck",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5628,
                                                        "src": "19210:8:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
                                                            "typeString": "function (address) view returns (bool)"
                                                        }
                                                    },
                                                    "id": 5306,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "19210:18:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "74727565",
                                                    "id": 5307,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "19230:4:15",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "true"
                                                },
                                                "src": "19210:24:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 5303,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "19202:7:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 5309,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "19202:33:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5310,
                                    "nodeType": "ExpressionStatement",
                                    "src": "19202:33:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 5316,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5313,
                                                            "name": "sender",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5280,
                                                            "src": "19356:6:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "id": 5312,
                                                        "name": "balanceOf",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 12173,
                                                        "src": "19346:9:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
                                                            "typeString": "function (address) view returns (uint256)"
                                                        }
                                                    },
                                                    "id": 5314,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "19346:17:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">=",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5315,
                                                    "name": "tokens",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5284,
                                                    "src": "19367:6:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "src": "19346:27:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "496e73756666696369656e742062616c616e636520666f72207472616e73666572",
                                                "id": 5317,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "19375:35:15",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_67b053d9c7b868e69c4855c461316e09c6febeb899c9666d9ec16f8fca1d60a8",
                                                    "typeString": "literal_string \"Insufficient balance for transfer\""
                                                },
                                                "value": "Insufficient balance for transfer"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_67b053d9c7b868e69c4855c461316e09c6febeb899c9666d9ec16f8fca1d60a8",
                                                    "typeString": "literal_string \"Insufficient balance for transfer\""
                                                }
                                            ],
                                            "id": 5311,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13011,
                                            "src": "19338:7:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5318,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "19338:73:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5319,
                                    "nodeType": "ExpressionStatement",
                                    "src": "19338:73:15"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        },
                                        "id": 5324,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 5320,
                                            "name": "receiver",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5282,
                                            "src": "19496:8:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 5322,
                                                    "name": "this",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 13077,
                                                    "src": "19516:4:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_Cash_$5750",
                                                        "typeString": "contract Cash"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_contract$_Cash_$5750",
                                                        "typeString": "contract Cash"
                                                    }
                                                ],
                                                "id": 5321,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "19508:7:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_address_$",
                                                    "typeString": "type(address)"
                                                },
                                                "typeName": "address"
                                            },
                                            "id": 5323,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "19508:13:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address_payable",
                                                "typeString": "address payable"
                                            }
                                        },
                                        "src": "19496:25:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "condition": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "id": 5344,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 5341,
                                                        "name": "receiver",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5282,
                                                        "src": "19857:8:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 5339,
                                                        "name": "_factory",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3633,
                                                        "src": "19840:8:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                            "typeString": "contract ViaFactory"
                                                        }
                                                    },
                                                    "id": 5340,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "getType",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 8240,
                                                    "src": "19840:16:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$",
                                                        "typeString": "function (address) view external returns (bytes32)"
                                                    }
                                                },
                                                "id": 5342,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "19840:26:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "==",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "56696143617368",
                                                "id": 5343,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "19868:9:15",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                    "typeString": "literal_string \"ViaCash\""
                                                },
                                                "value": "ViaCash"
                                            },
                                            "src": "19840:37:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "falseBody": {
                                            "condition": {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                "id": 5386,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5383,
                                                            "name": "receiver",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5282,
                                                            "src": "20399:8:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 5381,
                                                            "name": "_factory",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3633,
                                                            "src": "20382:8:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                "typeString": "contract ViaFactory"
                                                            }
                                                        },
                                                        "id": 5382,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "getType",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 8240,
                                                        "src": "20382:16:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$",
                                                            "typeString": "function (address) view external returns (bytes32)"
                                                        }
                                                    },
                                                    "id": 5384,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "20382:26:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "566961426f6e64",
                                                    "id": 5385,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "string",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "20410:9:15",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_stringliteral_52973aa3d1d0b9b2038bddf6fa0399136f1ab1c5f89b7edd623ff24875d0ed1f",
                                                        "typeString": "literal_string \"ViaBond\""
                                                    },
                                                    "value": "ViaBond"
                                                },
                                                "src": "20382:37:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            "falseBody": {
                                                "condition": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "id": 5413,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 5410,
                                                                "name": "receiver",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5282,
                                                                "src": "20747:8:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 5408,
                                                                "name": "_factory",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3633,
                                                                "src": "20730:8:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                    "typeString": "contract ViaFactory"
                                                                }
                                                            },
                                                            "id": 5409,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "getType",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8240,
                                                            "src": "20730:16:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$",
                                                                "typeString": "function (address) view external returns (bytes32)"
                                                            }
                                                        },
                                                        "id": 5411,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "20730:26:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "566961426f6e64546f6b656e",
                                                        "id": 5412,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "20758:14:15",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_4c19ae4ab2cb4ec4ecfdd0e1418f065638103e1c91c3461c18dc6cee3fc03c59",
                                                            "typeString": "literal_string \"ViaBondToken\""
                                                        },
                                                        "value": "ViaBondToken"
                                                    },
                                                    "src": "20730:42:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": {
                                                    "id": 5446,
                                                    "nodeType": "Block",
                                                    "src": "20998:309:15",
                                                    "statements": [
                                                        {
                                                            "condition": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 5436,
                                                                        "name": "tokens",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5284,
                                                                        "src": "21179:6:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 5437,
                                                                        "name": "sender",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5280,
                                                                        "src": "21187:6:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "hexValue": "7472616e73666572",
                                                                        "id": 5438,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": true,
                                                                        "kind": "string",
                                                                        "lValueRequested": false,
                                                                        "nodeType": "Literal",
                                                                        "src": "21195:10:15",
                                                                        "subdenomination": null,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_stringliteral_b483afd3f4caedc6eebf44246fe54e38c95e3179a5ec9ea81740eca5b482d12e",
                                                                            "typeString": "literal_string \"transfer\""
                                                                        },
                                                                        "value": "transfer"
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 5439,
                                                                        "name": "receiver",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5282,
                                                                        "src": "21207:8:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_stringliteral_b483afd3f4caedc6eebf44246fe54e38c95e3179a5ec9ea81740eca5b482d12e",
                                                                            "typeString": "literal_string \"transfer\""
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "id": 5435,
                                                                    "name": "redeem",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 5109,
                                                                    "src": "21172:6:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$_t_address_$returns$_t_bool_$",
                                                                        "typeString": "function (uint256,address,bytes32,address) returns (bool)"
                                                                    }
                                                                },
                                                                "id": 5440,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "21172:44:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            },
                                                            "falseBody": {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "66616c7365",
                                                                    "id": 5443,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "bool",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "21290:5:15",
                                                                    "subdenomination": null,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    },
                                                                    "value": "false"
                                                                },
                                                                "functionReturnParameters": 5288,
                                                                "id": 5444,
                                                                "nodeType": "Return",
                                                                "src": "21283:12:15"
                                                            },
                                                            "id": 5445,
                                                            "nodeType": "IfStatement",
                                                            "src": "21169:126:15",
                                                            "trueBody": {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "74727565",
                                                                    "id": 5441,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "bool",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "21242:4:15",
                                                                    "subdenomination": null,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    },
                                                                    "value": "true"
                                                                },
                                                                "functionReturnParameters": 5288,
                                                                "id": 5442,
                                                                "nodeType": "Return",
                                                                "src": "21235:11:15"
                                                            }
                                                        }
                                                    ]
                                                },
                                                "id": 5447,
                                                "nodeType": "IfStatement",
                                                "src": "20727:580:15",
                                                "trueBody": {
                                                    "id": 5434,
                                                    "nodeType": "Block",
                                                    "src": "20773:211:15",
                                                    "statements": [
                                                        {
                                                            "condition": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 5422,
                                                                        "name": "tokens",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5284,
                                                                        "src": "20847:6:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 5423,
                                                                        "name": "sender",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5280,
                                                                        "src": "20855:6:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 5424,
                                                                        "name": "_cashtokenName",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 3639,
                                                                        "src": "20863:14:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "arguments": [
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 5426,
                                                                                "name": "this",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 13077,
                                                                                "src": "20887:4:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                    "typeString": "contract Cash"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                    "typeString": "contract Cash"
                                                                                }
                                                                            ],
                                                                            "id": 5425,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "ElementaryTypeNameExpression",
                                                                            "src": "20879:7:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                                "typeString": "type(address)"
                                                                            },
                                                                            "typeName": "address"
                                                                        },
                                                                        "id": 5427,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "typeConversion",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "20879:13:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address_payable",
                                                                            "typeString": "address payable"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address_payable",
                                                                            "typeString": "address payable"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "arguments": [
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "arguments": [
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "arguments": [
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "id": 5417,
                                                                                                "name": "receiver",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 5282,
                                                                                                "src": "20816:8:15",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            }
                                                                                        ],
                                                                                        "expression": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "id": 5416,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "ElementaryTypeNameExpression",
                                                                                            "src": "20808:7:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_type$_t_uint160_$",
                                                                                                "typeString": "type(uint160)"
                                                                                            },
                                                                                            "typeName": "uint160"
                                                                                        },
                                                                                        "id": 5418,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "kind": "typeConversion",
                                                                                        "lValueRequested": false,
                                                                                        "names": [],
                                                                                        "nodeType": "FunctionCall",
                                                                                        "src": "20808:17:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint160",
                                                                                            "typeString": "uint160"
                                                                                        }
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint160",
                                                                                            "typeString": "uint160"
                                                                                        }
                                                                                    ],
                                                                                    "id": 5415,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "ElementaryTypeNameExpression",
                                                                                    "src": "20800:7:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_type$_t_address_$",
                                                                                        "typeString": "type(address)"
                                                                                    },
                                                                                    "typeName": "address"
                                                                                },
                                                                                "id": 5419,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "kind": "typeConversion",
                                                                                "lValueRequested": false,
                                                                                "names": [],
                                                                                "nodeType": "FunctionCall",
                                                                                "src": "20800:26:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address_payable",
                                                                                    "typeString": "address payable"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address_payable",
                                                                                    "typeString": "address payable"
                                                                                }
                                                                            ],
                                                                            "id": 5414,
                                                                            "name": "ViaToken",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 8499,
                                                                            "src": "20791:8:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_contract$_ViaToken_$8499_$",
                                                                                "typeString": "type(contract ViaToken)"
                                                                            }
                                                                        },
                                                                        "id": 5420,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "typeConversion",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "20791:36:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_contract$_ViaToken_$8499",
                                                                            "typeString": "contract ViaToken"
                                                                        }
                                                                    },
                                                                    "id": 5421,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "requestTransaction",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 8498,
                                                                    "src": "20791:55:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$_t_address_$returns$_t_bool_$",
                                                                        "typeString": "function (uint256,address,bytes32,address) external returns (bool)"
                                                                    }
                                                                },
                                                                "id": 5428,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "20791:102:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            },
                                                            "falseBody": {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "66616c7365",
                                                                    "id": 5431,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "bool",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "20967:5:15",
                                                                    "subdenomination": null,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    },
                                                                    "value": "false"
                                                                },
                                                                "functionReturnParameters": 5288,
                                                                "id": 5432,
                                                                "nodeType": "Return",
                                                                "src": "20960:12:15"
                                                            },
                                                            "id": 5433,
                                                            "nodeType": "IfStatement",
                                                            "src": "20788:184:15",
                                                            "trueBody": {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "74727565",
                                                                    "id": 5429,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "bool",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "20919:4:15",
                                                                    "subdenomination": null,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    },
                                                                    "value": "true"
                                                                },
                                                                "functionReturnParameters": 5288,
                                                                "id": 5430,
                                                                "nodeType": "Return",
                                                                "src": "20912:11:15"
                                                            }
                                                        }
                                                    ]
                                                }
                                            },
                                            "id": 5448,
                                            "nodeType": "IfStatement",
                                            "src": "20379:928:15",
                                            "trueBody": {
                                                "id": 5407,
                                                "nodeType": "Block",
                                                "src": "20420:204:15",
                                                "statements": [
                                                    {
                                                        "condition": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 5395,
                                                                    "name": "tokens",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 5284,
                                                                    "src": "20487:6:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 5396,
                                                                    "name": "sender",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 5280,
                                                                    "src": "20495:6:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 5397,
                                                                    "name": "_cashtokenName",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3639,
                                                                    "src": "20503:14:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 5399,
                                                                            "name": "this",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 13077,
                                                                            "src": "20527:4:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                "typeString": "contract Cash"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                "typeString": "contract Cash"
                                                                            }
                                                                        ],
                                                                        "id": 5398,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": true,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "ElementaryTypeNameExpression",
                                                                        "src": "20519:7:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_address_$",
                                                                            "typeString": "type(address)"
                                                                        },
                                                                        "typeName": "address"
                                                                    },
                                                                    "id": 5400,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "typeConversion",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "20519:13:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address_payable",
                                                                        "typeString": "address payable"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_address_payable",
                                                                        "typeString": "address payable"
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "arguments": [
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "arguments": [
                                                                                        {
                                                                                            "argumentTypes": null,
                                                                                            "id": 5390,
                                                                                            "name": "receiver",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 5282,
                                                                                            "src": "20462:8:15",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            }
                                                                                        }
                                                                                    ],
                                                                                    "expression": {
                                                                                        "argumentTypes": [
                                                                                            {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5389,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": true,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "ElementaryTypeNameExpression",
                                                                                        "src": "20454:7:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_type$_t_uint160_$",
                                                                                            "typeString": "type(uint160)"
                                                                                        },
                                                                                        "typeName": "uint160"
                                                                                    },
                                                                                    "id": 5391,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "kind": "typeConversion",
                                                                                    "lValueRequested": false,
                                                                                    "names": [],
                                                                                    "nodeType": "FunctionCall",
                                                                                    "src": "20454:17:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint160",
                                                                                        "typeString": "uint160"
                                                                                    }
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": [
                                                                                    {
                                                                                        "typeIdentifier": "t_uint160",
                                                                                        "typeString": "uint160"
                                                                                    }
                                                                                ],
                                                                                "id": 5388,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "ElementaryTypeNameExpression",
                                                                                "src": "20446:7:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_type$_t_address_$",
                                                                                    "typeString": "type(address)"
                                                                                },
                                                                                "typeName": "address"
                                                                            },
                                                                            "id": 5392,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "kind": "typeConversion",
                                                                            "lValueRequested": false,
                                                                            "names": [],
                                                                            "nodeType": "FunctionCall",
                                                                            "src": "20446:26:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address_payable",
                                                                                "typeString": "address payable"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_address_payable",
                                                                                "typeString": "address payable"
                                                                            }
                                                                        ],
                                                                        "id": 5387,
                                                                        "name": "ViaBond",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8169,
                                                                        "src": "20438:7:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_ViaBond_$8169_$",
                                                                            "typeString": "type(contract ViaBond)"
                                                                        }
                                                                    },
                                                                    "id": 5393,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "typeConversion",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "20438:35:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_ViaBond_$8169",
                                                                        "typeString": "contract ViaBond"
                                                                    }
                                                                },
                                                                "id": 5394,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "requestIssue",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 8104,
                                                                "src": "20438:48:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$_t_address_$returns$_t_bool_$",
                                                                    "typeString": "function (uint256,address,bytes32,address) external returns (bool)"
                                                                }
                                                            },
                                                            "id": 5401,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "20438:95:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        },
                                                        "falseBody": {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "hexValue": "66616c7365",
                                                                "id": 5404,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "bool",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "20607:5:15",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                "value": "false"
                                                            },
                                                            "functionReturnParameters": 5288,
                                                            "id": 5405,
                                                            "nodeType": "Return",
                                                            "src": "20600:12:15"
                                                        },
                                                        "id": 5406,
                                                        "nodeType": "IfStatement",
                                                        "src": "20435:177:15",
                                                        "trueBody": {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "hexValue": "74727565",
                                                                "id": 5402,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "bool",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "20559:4:15",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                "value": "true"
                                                            },
                                                            "functionReturnParameters": 5288,
                                                            "id": 5403,
                                                            "nodeType": "Return",
                                                            "src": "20552:11:15"
                                                        }
                                                    }
                                                ]
                                            }
                                        },
                                        "id": 5449,
                                        "nodeType": "IfStatement",
                                        "src": "19837:1470:15",
                                        "trueBody": {
                                            "id": 5380,
                                            "nodeType": "Block",
                                            "src": "19878:395:15",
                                            "statements": [
                                                {
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 5349,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "UnaryOperation",
                                                                "operator": "!",
                                                                "prefix": true,
                                                                "src": "19902:18:15",
                                                                "subExpression": {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 5346,
                                                                        "name": "_lock",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 3711,
                                                                        "src": "19903:5:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                                            "typeString": "mapping(bytes32 => bool)"
                                                                        }
                                                                    },
                                                                    "id": 5348,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "hexValue": "7472616e73666572",
                                                                        "id": 5347,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": true,
                                                                        "kind": "string",
                                                                        "lValueRequested": false,
                                                                        "nodeType": "Literal",
                                                                        "src": "19909:10:15",
                                                                        "subdenomination": null,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_stringliteral_b483afd3f4caedc6eebf44246fe54e38c95e3179a5ec9ea81740eca5b482d12e",
                                                                            "typeString": "literal_string \"transfer\""
                                                                        },
                                                                        "value": "transfer"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "19903:17:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    }
                                                                },
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "hexValue": "4c6f636b206f6e207472616e73666572",
                                                                "id": 5350,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "string",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "19922:18:15",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_stringliteral_49e94630fa6bb3ae870cb33fc70d45b1f4820781d6a443e4cb5476f1d61d07fa",
                                                                    "typeString": "literal_string \"Lock on transfer\""
                                                                },
                                                                "value": "Lock on transfer"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_49e94630fa6bb3ae870cb33fc70d45b1f4820781d6a443e4cb5476f1d61d07fa",
                                                                    "typeString": "literal_string \"Lock on transfer\""
                                                                }
                                                            ],
                                                            "id": 5345,
                                                            "name": "require",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13011,
                                                            "src": "19894:7:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                                "typeString": "function (bool,string memory) pure"
                                                            }
                                                        },
                                                        "id": 5351,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "19894:47:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_tuple$__$",
                                                            "typeString": "tuple()"
                                                        }
                                                    },
                                                    "id": 5352,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "19894:47:15"
                                                },
                                                {
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 5357,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftHandSide": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5353,
                                                                "name": "_lock",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3711,
                                                                "src": "19956:5:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                                    "typeString": "mapping(bytes32 => bool)"
                                                                }
                                                            },
                                                            "id": 5355,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "hexValue": "7472616e73666572",
                                                                "id": 5354,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "string",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "19962:10:15",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_stringliteral_b483afd3f4caedc6eebf44246fe54e38c95e3179a5ec9ea81740eca5b482d12e",
                                                                    "typeString": "literal_string \"transfer\""
                                                                },
                                                                "value": "transfer"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "nodeType": "IndexAccess",
                                                            "src": "19956:17:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        },
                                                        "nodeType": "Assignment",
                                                        "operator": "=",
                                                        "rightHandSide": {
                                                            "argumentTypes": null,
                                                            "hexValue": "74727565",
                                                            "id": 5356,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "bool",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "19976:4:15",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "value": "true"
                                                        },
                                                        "src": "19956:24:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "id": 5358,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "19956:24:15"
                                                },
                                                {
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 5367,
                                                                "name": "tokens",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5284,
                                                                "src": "20147:6:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 5368,
                                                                "name": "sender",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5280,
                                                                "src": "20155:6:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 5369,
                                                                "name": "_cashtokenName",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3639,
                                                                "src": "20163:14:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "arguments": [
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "arguments": [
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "id": 5362,
                                                                                        "name": "receiver",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 5282,
                                                                                        "src": "20122:8:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "id": 5361,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "ElementaryTypeNameExpression",
                                                                                    "src": "20114:7:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_type$_t_uint160_$",
                                                                                        "typeString": "type(uint160)"
                                                                                    },
                                                                                    "typeName": "uint160"
                                                                                },
                                                                                "id": 5363,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "kind": "typeConversion",
                                                                                "lValueRequested": false,
                                                                                "names": [],
                                                                                "nodeType": "FunctionCall",
                                                                                "src": "20114:17:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint160",
                                                                                    "typeString": "uint160"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint160",
                                                                                    "typeString": "uint160"
                                                                                }
                                                                            ],
                                                                            "id": 5360,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "ElementaryTypeNameExpression",
                                                                            "src": "20106:7:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                                "typeString": "type(address)"
                                                                            },
                                                                            "typeName": "address"
                                                                        },
                                                                        "id": 5364,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "typeConversion",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "20106:26:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address_payable",
                                                                            "typeString": "address payable"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address_payable",
                                                                            "typeString": "address payable"
                                                                        }
                                                                    ],
                                                                    "id": 5359,
                                                                    "name": "Cash",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 5750,
                                                                    "src": "20101:4:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_Cash_$5750_$",
                                                                        "typeString": "type(contract Cash)"
                                                                    }
                                                                },
                                                                "id": 5365,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "20101:32:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_Cash_$5750",
                                                                    "typeString": "contract Cash"
                                                                }
                                                            },
                                                            "id": 5366,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "requestIssue",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 3980,
                                                            "src": "20101:45:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$__$",
                                                                "typeString": "function (uint256,address,bytes32) external"
                                                            }
                                                        },
                                                        "id": 5370,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "20101:77:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_tuple$__$",
                                                            "typeString": "tuple()"
                                                        }
                                                    },
                                                    "id": 5371,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "20101:77:15"
                                                },
                                                {
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 5376,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftHandSide": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5372,
                                                                "name": "_lock",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3711,
                                                                "src": "20193:5:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                                    "typeString": "mapping(bytes32 => bool)"
                                                                }
                                                            },
                                                            "id": 5374,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "hexValue": "7472616e73666572",
                                                                "id": 5373,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "string",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "20199:10:15",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_stringliteral_b483afd3f4caedc6eebf44246fe54e38c95e3179a5ec9ea81740eca5b482d12e",
                                                                    "typeString": "literal_string \"transfer\""
                                                                },
                                                                "value": "transfer"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "nodeType": "IndexAccess",
                                                            "src": "20193:17:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        },
                                                        "nodeType": "Assignment",
                                                        "operator": "=",
                                                        "rightHandSide": {
                                                            "argumentTypes": null,
                                                            "hexValue": "66616c7365",
                                                            "id": 5375,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "bool",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "20213:5:15",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "value": "false"
                                                        },
                                                        "src": "20193:25:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "id": 5377,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "20193:25:15"
                                                },
                                                {
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "74727565",
                                                        "id": 5378,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "bool",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "20241:4:15",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        },
                                                        "value": "true"
                                                    },
                                                    "functionReturnParameters": 5288,
                                                    "id": 5379,
                                                    "nodeType": "Return",
                                                    "src": "20234:11:15"
                                                }
                                            ]
                                        }
                                    },
                                    "id": 5450,
                                    "nodeType": "IfStatement",
                                    "src": "19493:1814:15",
                                    "trueBody": {
                                        "id": 5338,
                                        "nodeType": "Block",
                                        "src": "19522:231:15",
                                        "statements": [
                                            {
                                                "condition": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5326,
                                                            "name": "tokens",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5284,
                                                            "src": "19622:6:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5327,
                                                            "name": "sender",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5280,
                                                            "src": "19630:6:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "hexValue": "72656465656d",
                                                            "id": 5328,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "string",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "19638:8:15",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_stringliteral_26ef0a97332ad048ac544d8dfacdd43e128b9816d599fdd0310960904fa18609",
                                                                "typeString": "literal_string \"redeem\""
                                                            },
                                                            "value": "redeem"
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 5330,
                                                                    "name": "this",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 13077,
                                                                    "src": "19656:4:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_Cash_$5750",
                                                                        "typeString": "contract Cash"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_contract$_Cash_$5750",
                                                                        "typeString": "contract Cash"
                                                                    }
                                                                ],
                                                                "id": 5329,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "lValueRequested": false,
                                                                "nodeType": "ElementaryTypeNameExpression",
                                                                "src": "19648:7:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_address_$",
                                                                    "typeString": "type(address)"
                                                                },
                                                                "typeName": "address"
                                                            },
                                                            "id": 5331,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "19648:13:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_stringliteral_26ef0a97332ad048ac544d8dfacdd43e128b9816d599fdd0310960904fa18609",
                                                                "typeString": "literal_string \"redeem\""
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        ],
                                                        "id": 5325,
                                                        "name": "redeem",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5109,
                                                        "src": "19615:6:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$_t_address_$returns$_t_bool_$",
                                                            "typeString": "function (uint256,address,bytes32,address) returns (bool)"
                                                        }
                                                    },
                                                    "id": 5332,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "19615:47:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": {
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "66616c7365",
                                                        "id": 5335,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "bool",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "19736:5:15",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        },
                                                        "value": "false"
                                                    },
                                                    "functionReturnParameters": 5288,
                                                    "id": 5336,
                                                    "nodeType": "Return",
                                                    "src": "19729:12:15"
                                                },
                                                "id": 5337,
                                                "nodeType": "IfStatement",
                                                "src": "19612:129:15",
                                                "trueBody": {
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "74727565",
                                                        "id": 5333,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "bool",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "19688:4:15",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        },
                                                        "value": "true"
                                                    },
                                                    "functionReturnParameters": 5288,
                                                    "id": 5334,
                                                    "nodeType": "Return",
                                                    "src": "19681:11:15"
                                                }
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5452,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "transferFrom",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5285,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5280,
                                    "name": "sender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5452,
                                    "src": "18976:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5279,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "18976:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5282,
                                    "name": "receiver",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5452,
                                    "src": "18992:16:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5281,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "18992:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5284,
                                    "name": "tokens",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5452,
                                    "src": "19010:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5283,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "19010:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "18975:50:15"
                        },
                        "returnParameters": {
                            "id": 5288,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5287,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5452,
                                    "src": "19042:4:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 5286,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "19042:4:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "19041:6:15"
                        },
                        "scope": 5750,
                        "src": "18954:2361:15",
                        "stateMutability": "nonpayable",
                        "superFunction": 12263,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5594,
                            "nodeType": "Block",
                            "src": "21515:905:15",
                            "statements": [
                                {
                                    "assignments": [
                                        5470
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 5470,
                                            "name": "fees",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 5594,
                                            "src": "21526:12:15",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 5469,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "21526:7:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 5471,
                                    "initialValue": null,
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "21526:12:15"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        },
                                        "id": 5474,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 5472,
                                            "name": "action",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5462,
                                            "src": "21552:6:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "7472616e73666572",
                                            "id": 5473,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "21560:10:15",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_b483afd3f4caedc6eebf44246fe54e38c95e3179a5ec9ea81740eca5b482d12e",
                                                "typeString": "literal_string \"transfer\""
                                            },
                                            "value": "transfer"
                                        },
                                        "src": "21552:18:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "condition": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "id": 5484,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "id": 5482,
                                                "name": "action",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5462,
                                                "src": "21638:6:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "==",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "77697468647261776c",
                                                "id": 5483,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "21646:11:15",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_014ab85ea8e748688cc6784b5e57ac1916c5079c4b0ea7171a3ee030794a44d0",
                                                    "typeString": "literal_string \"withdrawl\""
                                                },
                                                "value": "withdrawl"
                                            },
                                            "src": "21638:19:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "falseBody": null,
                                        "id": 5492,
                                        "nodeType": "IfStatement",
                                        "src": "21635:70:15",
                                        "trueBody": {
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 5490,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftHandSide": {
                                                    "argumentTypes": null,
                                                    "id": 5485,
                                                    "name": "fees",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5470,
                                                    "src": "21672:4:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "Assignment",
                                                "operator": "=",
                                                "rightHandSide": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "hexValue": "77697468647261776c",
                                                            "id": 5488,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "string",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "21693:11:15",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_stringliteral_014ab85ea8e748688cc6784b5e57ac1916c5079c4b0ea7171a3ee030794a44d0",
                                                                "typeString": "literal_string \"withdrawl\""
                                                            },
                                                            "value": "withdrawl"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_stringliteral_014ab85ea8e748688cc6784b5e57ac1916c5079c4b0ea7171a3ee030794a44d0",
                                                                "typeString": "literal_string \"withdrawl\""
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 5486,
                                                            "name": "_rates",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3635,
                                                            "src": "21679:6:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_VerifiedRates_$8061",
                                                                "typeString": "contract VerifiedRates"
                                                            }
                                                        },
                                                        "id": 5487,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "getFee",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 8051,
                                                        "src": "21679:13:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$",
                                                            "typeString": "function (bytes32) view external returns (uint256)"
                                                        }
                                                    },
                                                    "id": 5489,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "21679:26:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "src": "21672:33:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "id": 5491,
                                            "nodeType": "ExpressionStatement",
                                            "src": "21672:33:15"
                                        }
                                    },
                                    "id": 5493,
                                    "nodeType": "IfStatement",
                                    "src": "21549:156:15",
                                    "trueBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 5480,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftHandSide": {
                                                "argumentTypes": null,
                                                "id": 5475,
                                                "name": "fees",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5470,
                                                "src": "21585:4:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "nodeType": "Assignment",
                                            "operator": "=",
                                            "rightHandSide": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "hexValue": "72656d697474616e6365",
                                                        "id": 5478,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "21606:12:15",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_43b4a8ffdd1b6d1390de3a3b084de3a8b97aafc97b375dd2c5ba53c4371d99b5",
                                                            "typeString": "literal_string \"remittance\""
                                                        },
                                                        "value": "remittance"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_stringliteral_43b4a8ffdd1b6d1390de3a3b084de3a8b97aafc97b375dd2c5ba53c4371d99b5",
                                                            "typeString": "literal_string \"remittance\""
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 5476,
                                                        "name": "_rates",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3635,
                                                        "src": "21592:6:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_VerifiedRates_$8061",
                                                            "typeString": "contract VerifiedRates"
                                                        }
                                                    },
                                                    "id": 5477,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "getFee",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 8051,
                                                    "src": "21592:13:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$",
                                                        "typeString": "function (bytes32) view external returns (uint256)"
                                                    }
                                                },
                                                "id": 5479,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "21592:27:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "src": "21585:34:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 5481,
                                        "nodeType": "ExpressionStatement",
                                        "src": "21585:34:15"
                                    }
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 5496,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 5494,
                                            "name": "fees",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5470,
                                            "src": "21719:4:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 5495,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "21726:1:15",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "src": "21719:8:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": null,
                                    "id": 5589,
                                    "nodeType": "IfStatement",
                                    "src": "21716:664:15",
                                    "trueBody": {
                                        "id": 5588,
                                        "nodeType": "Block",
                                        "src": "21728:652:15",
                                        "statements": [
                                            {
                                                "assignments": [
                                                    5498
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 5498,
                                                        "name": "feeTo",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 5588,
                                                        "src": "21743:13:15",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "typeName": {
                                                            "id": 5497,
                                                            "name": "address",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "21743:7:15",
                                                            "stateMutability": "nonpayable",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 5502,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "arguments": [],
                                                    "expression": {
                                                        "argumentTypes": [],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 5499,
                                                            "name": "_rates",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3635,
                                                            "src": "21759:6:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_VerifiedRates_$8061",
                                                                "typeString": "contract VerifiedRates"
                                                            }
                                                        },
                                                        "id": 5500,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "getCustodian",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 8029,
                                                        "src": "21759:19:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                                            "typeString": "function () view external returns (address)"
                                                        }
                                                    },
                                                    "id": 5501,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "21759:21:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "21743:37:15"
                                            },
                                            {
                                                "condition": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "id": 5507,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5503,
                                                        "name": "feeTo",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5498,
                                                        "src": "21798:5:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "!=",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "hexValue": "307830",
                                                                "id": 5505,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "number",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "21813:3:15",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                    "typeString": "int_const 0"
                                                                },
                                                                "value": "0x0"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                    "typeString": "int_const 0"
                                                                }
                                                            ],
                                                            "id": 5504,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "21805:7:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": "address"
                                                        },
                                                        "id": 5506,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "21805:12:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address_payable",
                                                            "typeString": "address payable"
                                                        }
                                                    },
                                                    "src": "21798:19:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": null,
                                                "id": 5587,
                                                "nodeType": "IfStatement",
                                                "src": "21795:574:15",
                                                "trueBody": {
                                                    "id": 5586,
                                                    "nodeType": "Block",
                                                    "src": "21818:551:15",
                                                    "statements": [
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 5509,
                                                                        "name": "payer",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5454,
                                                                        "src": "21847:5:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 5510,
                                                                        "name": "feeTo",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5498,
                                                                        "src": "21854:5:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "arguments": [
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 5513,
                                                                                "name": "fees",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 5470,
                                                                                "src": "21880:4:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 5514,
                                                                                "name": "amount",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 5456,
                                                                                "src": "21886:6:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "id": 5511,
                                                                                "name": "FixedPoint",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 8909,
                                                                                "src": "21861:10:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                    "typeString": "type(library FixedPoint)"
                                                                                }
                                                                            },
                                                                            "id": 5512,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "mulDown",
                                                                            "nodeType": "MemberAccess",
                                                                            "referencedDeclaration": 8604,
                                                                            "src": "21861:18:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                            }
                                                                        },
                                                                        "id": 5515,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "functionCall",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "21861:32:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "id": 5508,
                                                                    "name": "_transfer",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 12375,
                                                                    "src": "21837:9:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                                                                        "typeString": "function (address,address,uint256)"
                                                                    }
                                                                },
                                                                "id": 5516,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "21837:57:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_tuple$__$",
                                                                    "typeString": "tuple()"
                                                                }
                                                            },
                                                            "id": 5517,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "21837:57:15"
                                                        },
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 5538,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftHandSide": {
                                                                    "argumentTypes": null,
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "baseExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 5518,
                                                                                "name": "_deposits",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 3659,
                                                                                "src": "21913:9:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                    "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                }
                                                                            },
                                                                            "id": 5521,
                                                                            "indexExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 5519,
                                                                                "name": "feeTo",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 5498,
                                                                                "src": "21923:5:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "21913:16:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                            }
                                                                        },
                                                                        "id": 5522,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 5520,
                                                                            "name": "currency",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 5460,
                                                                            "src": "21930:8:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "21913:26:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                            "typeString": "struct Cash.deposit storage ref"
                                                                        }
                                                                    },
                                                                    "id": 5523,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": true,
                                                                    "memberName": "issuedAmount",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 3643,
                                                                    "src": "21913:39:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "nodeType": "Assignment",
                                                                "operator": "=",
                                                                "rightHandSide": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "baseExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "baseExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 5526,
                                                                                        "name": "_deposits",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 3659,
                                                                                        "src": "21964:9:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                            "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                        }
                                                                                    },
                                                                                    "id": 5528,
                                                                                    "indexExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 5527,
                                                                                        "name": "feeTo",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 5498,
                                                                                        "src": "21974:5:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "21964:16:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                        "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                    }
                                                                                },
                                                                                "id": 5530,
                                                                                "indexExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 5529,
                                                                                    "name": "currency",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 5460,
                                                                                    "src": "21981:8:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bytes32",
                                                                                        "typeString": "bytes32"
                                                                                    }
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "21964:26:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                    "typeString": "struct Cash.deposit storage ref"
                                                                                }
                                                                            },
                                                                            "id": 5531,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "issuedAmount",
                                                                            "nodeType": "MemberAccess",
                                                                            "referencedDeclaration": 3643,
                                                                            "src": "21964:39:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "arguments": [
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "id": 5534,
                                                                                    "name": "fees",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 5470,
                                                                                    "src": "22024:4:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "id": 5535,
                                                                                    "name": "amount",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 5456,
                                                                                    "src": "22030:6:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": [
                                                                                    {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 5532,
                                                                                    "name": "FixedPoint",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 8909,
                                                                                    "src": "22005:10:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                        "typeString": "type(library FixedPoint)"
                                                                                    }
                                                                                },
                                                                                "id": 5533,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "memberName": "mulDown",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 8604,
                                                                                "src": "22005:18:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                }
                                                                            },
                                                                            "id": 5536,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "kind": "functionCall",
                                                                            "lValueRequested": false,
                                                                            "names": [],
                                                                            "nodeType": "FunctionCall",
                                                                            "src": "22005:32:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 5524,
                                                                            "name": "Math",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 10483,
                                                                            "src": "21955:4:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                                "typeString": "type(library Math)"
                                                                            }
                                                                        },
                                                                        "id": 5525,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "sub",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 10300,
                                                                        "src": "21955:8:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                        }
                                                                    },
                                                                    "id": 5537,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "21955:83:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "src": "21913:125:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "id": 5539,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "21913:125:15"
                                                        },
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 5560,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftHandSide": {
                                                                    "argumentTypes": null,
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "baseExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 5540,
                                                                                "name": "_deposits",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 3659,
                                                                                "src": "22057:9:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                    "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                }
                                                                            },
                                                                            "id": 5543,
                                                                            "indexExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 5541,
                                                                                "name": "feeTo",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 5498,
                                                                                "src": "22067:5:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "22057:16:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                            }
                                                                        },
                                                                        "id": 5544,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 5542,
                                                                            "name": "currency",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 5460,
                                                                            "src": "22074:8:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "22057:26:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                            "typeString": "struct Cash.deposit storage ref"
                                                                        }
                                                                    },
                                                                    "id": 5545,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": true,
                                                                    "memberName": "depositAmount",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 3641,
                                                                    "src": "22057:40:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "nodeType": "Assignment",
                                                                "operator": "=",
                                                                "rightHandSide": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "baseExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "baseExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 5548,
                                                                                        "name": "_deposits",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 3659,
                                                                                        "src": "22109:9:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$_$",
                                                                                            "typeString": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))"
                                                                                        }
                                                                                    },
                                                                                    "id": 5550,
                                                                                    "indexExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 5549,
                                                                                        "name": "feeTo",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 5498,
                                                                                        "src": "22119:5:15",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "22109:16:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_deposit_$3646_storage_$",
                                                                                        "typeString": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                    }
                                                                                },
                                                                                "id": 5552,
                                                                                "indexExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 5551,
                                                                                    "name": "currency",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 5460,
                                                                                    "src": "22126:8:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bytes32",
                                                                                        "typeString": "bytes32"
                                                                                    }
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "22109:26:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_struct$_deposit_$3646_storage",
                                                                                    "typeString": "struct Cash.deposit storage ref"
                                                                                }
                                                                            },
                                                                            "id": 5553,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "depositAmount",
                                                                            "nodeType": "MemberAccess",
                                                                            "referencedDeclaration": 3641,
                                                                            "src": "22109:40:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "arguments": [
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "id": 5556,
                                                                                    "name": "fees",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 5470,
                                                                                    "src": "22170:4:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "id": 5557,
                                                                                    "name": "value",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 5458,
                                                                                    "src": "22176:5:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": [
                                                                                    {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 5554,
                                                                                    "name": "FixedPoint",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 8909,
                                                                                    "src": "22151:10:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                        "typeString": "type(library FixedPoint)"
                                                                                    }
                                                                                },
                                                                                "id": 5555,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "memberName": "mulDown",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 8604,
                                                                                "src": "22151:18:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                }
                                                                            },
                                                                            "id": 5558,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "kind": "functionCall",
                                                                            "lValueRequested": false,
                                                                            "names": [],
                                                                            "nodeType": "FunctionCall",
                                                                            "src": "22151:31:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 5546,
                                                                            "name": "Math",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 10483,
                                                                            "src": "22100:4:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                                "typeString": "type(library Math)"
                                                                            }
                                                                        },
                                                                        "id": 5547,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "sub",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 10300,
                                                                        "src": "22100:8:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                        }
                                                                    },
                                                                    "id": 5559,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "22100:83:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "src": "22057:126:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "id": 5561,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "22057:126:15"
                                                        },
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 5572,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftHandSide": {
                                                                    "argumentTypes": null,
                                                                    "id": 5562,
                                                                    "name": "amount",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 5456,
                                                                    "src": "22202:6:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "nodeType": "Assignment",
                                                                "operator": "=",
                                                                "rightHandSide": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 5565,
                                                                            "name": "amount",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 5456,
                                                                            "src": "22220:6:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "arguments": [
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "id": 5568,
                                                                                    "name": "fees",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 5470,
                                                                                    "src": "22247:4:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "id": 5569,
                                                                                    "name": "amount",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 5456,
                                                                                    "src": "22253:6:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": [
                                                                                    {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 5566,
                                                                                    "name": "FixedPoint",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 8909,
                                                                                    "src": "22228:10:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                        "typeString": "type(library FixedPoint)"
                                                                                    }
                                                                                },
                                                                                "id": 5567,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "memberName": "mulDown",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 8604,
                                                                                "src": "22228:18:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                }
                                                                            },
                                                                            "id": 5570,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "kind": "functionCall",
                                                                            "lValueRequested": false,
                                                                            "names": [],
                                                                            "nodeType": "FunctionCall",
                                                                            "src": "22228:32:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 5563,
                                                                            "name": "Math",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 10483,
                                                                            "src": "22211:4:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                                "typeString": "type(library Math)"
                                                                            }
                                                                        },
                                                                        "id": 5564,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "sub",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 10300,
                                                                        "src": "22211:8:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                        }
                                                                    },
                                                                    "id": 5571,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "22211:50:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "src": "22202:59:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "id": 5573,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "22202:59:15"
                                                        },
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 5584,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftHandSide": {
                                                                    "argumentTypes": null,
                                                                    "id": 5574,
                                                                    "name": "value",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 5458,
                                                                    "src": "22280:5:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "nodeType": "Assignment",
                                                                "operator": "=",
                                                                "rightHandSide": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 5577,
                                                                            "name": "value",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 5458,
                                                                            "src": "22297:5:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "arguments": [
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "id": 5580,
                                                                                    "name": "fees",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 5470,
                                                                                    "src": "22323:4:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "id": 5581,
                                                                                    "name": "value",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 5458,
                                                                                    "src": "22329:5:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": [
                                                                                    {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 5578,
                                                                                    "name": "FixedPoint",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 8909,
                                                                                    "src": "22304:10:15",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                        "typeString": "type(library FixedPoint)"
                                                                                    }
                                                                                },
                                                                                "id": 5579,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "memberName": "mulDown",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 8604,
                                                                                "src": "22304:18:15",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                }
                                                                            },
                                                                            "id": 5582,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "kind": "functionCall",
                                                                            "lValueRequested": false,
                                                                            "names": [],
                                                                            "nodeType": "FunctionCall",
                                                                            "src": "22304:31:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 5575,
                                                                            "name": "Math",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 10483,
                                                                            "src": "22288:4:15",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                                "typeString": "type(library Math)"
                                                                            }
                                                                        },
                                                                        "id": 5576,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "sub",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 10300,
                                                                        "src": "22288:8:15",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                        }
                                                                    },
                                                                    "id": 5583,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "22288:48:15",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "src": "22280:56:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "id": 5585,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "22280:56:15"
                                                        }
                                                    ]
                                                }
                                            }
                                        ]
                                    }
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "components": [
                                            {
                                                "argumentTypes": null,
                                                "id": 5590,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5456,
                                                "src": "22398:6:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5591,
                                                "name": "value",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5458,
                                                "src": "22406:5:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "id": 5592,
                                        "isConstant": false,
                                        "isInlineArray": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "TupleExpression",
                                        "src": "22397:15:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
                                            "typeString": "tuple(uint256,uint256)"
                                        }
                                    },
                                    "functionReturnParameters": 5468,
                                    "id": 5593,
                                    "nodeType": "Return",
                                    "src": "22390:22:15"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5595,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "payFee",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5463,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5454,
                                    "name": "payer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5595,
                                    "src": "21401:13:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5453,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "21401:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5456,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5595,
                                    "src": "21416:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5455,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "21416:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5458,
                                    "name": "value",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5595,
                                    "src": "21432:13:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5457,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "21432:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5460,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5595,
                                    "src": "21447:16:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 5459,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "21447:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5462,
                                    "name": "action",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5595,
                                    "src": "21465:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 5461,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "21465:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "21400:80:15"
                        },
                        "returnParameters": {
                            "id": 5468,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5465,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5595,
                                    "src": "21498:7:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5464,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "21498:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5467,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5595,
                                    "src": "21507:7:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5466,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "21507:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "21497:18:15"
                        },
                        "scope": 5750,
                        "src": "21385:1035:15",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 5627,
                            "nodeType": "Block",
                            "src": "22533:241:15",
                            "statements": [
                                {
                                    "assignments": [
                                        5603
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 5603,
                                            "name": "client",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 5627,
                                            "src": "22544:14:15",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 5602,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "22544:7:15",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 5607,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 5604,
                                                "name": "_factory",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3633,
                                                "src": "22561:8:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                    "typeString": "contract ViaFactory"
                                                }
                                            },
                                            "id": 5605,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getClient",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8361,
                                            "src": "22561:18:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                                "typeString": "function () view external returns (address)"
                                            }
                                        },
                                        "id": 5606,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "22561:20:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "22544:37:15"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        },
                                        "id": 5612,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 5608,
                                            "name": "client",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5603,
                                            "src": "22595:6:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "hexValue": "307830",
                                                    "id": 5610,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "22611:3:15",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0x0"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    }
                                                ],
                                                "id": 5609,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "22603:7:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_address_$",
                                                    "typeString": "type(address)"
                                                },
                                                "typeName": "address"
                                            },
                                            "id": 5611,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "22603:12:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address_payable",
                                                "typeString": "address payable"
                                            }
                                        },
                                        "src": "22595:20:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": null,
                                    "id": 5615,
                                    "nodeType": "IfStatement",
                                    "src": "22592:49:15",
                                    "trueBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "hexValue": "74727565",
                                            "id": 5613,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "22637:4:15",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "value": "true"
                                        },
                                        "functionReturnParameters": 5601,
                                        "id": 5614,
                                        "nodeType": "Return",
                                        "src": "22630:11:15"
                                    }
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 5620,
                                                "name": "account",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5597,
                                                "src": "22691:7:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 5617,
                                                        "name": "client",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5603,
                                                        "src": "22670:6:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 5616,
                                                    "name": "VerifiedClient",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8022,
                                                    "src": "22655:14:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_VerifiedClient_$8022_$",
                                                        "typeString": "type(contract VerifiedClient)"
                                                    }
                                                },
                                                "id": 5618,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "22655:22:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_VerifiedClient_$8022",
                                                    "typeString": "contract VerifiedClient"
                                                }
                                            },
                                            "id": 5619,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getAMLStatus",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 7999,
                                            "src": "22655:35:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                                                "typeString": "function (address) view external returns (bool)"
                                            }
                                        },
                                        "id": 5621,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "22655:44:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "hexValue": "66616c7365",
                                            "id": 5624,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "22761:5:15",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "value": "false"
                                        },
                                        "functionReturnParameters": 5601,
                                        "id": 5625,
                                        "nodeType": "Return",
                                        "src": "22754:12:15"
                                    },
                                    "id": 5626,
                                    "nodeType": "IfStatement",
                                    "src": "22652:114:15",
                                    "trueBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "hexValue": "74727565",
                                            "id": 5622,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "22721:4:15",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "value": "true"
                                        },
                                        "functionReturnParameters": 5601,
                                        "id": 5623,
                                        "nodeType": "Return",
                                        "src": "22714:11:15"
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5628,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "amlCheck",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5598,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5597,
                                    "name": "account",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5628,
                                    "src": "22490:15:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5596,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "22490:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "22489:17:15"
                        },
                        "returnParameters": {
                            "id": 5601,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5600,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5628,
                                    "src": "22528:4:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 5599,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "22528:4:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "22527:6:15"
                        },
                        "scope": 5750,
                        "src": "22472:302:15",
                        "stateMutability": "view",
                        "superFunction": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 5638,
                            "nodeType": "Block",
                            "src": "22835:27:15",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 5635,
                                            "name": "_pause",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 12557,
                                            "src": "22846:6:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                                                "typeString": "function ()"
                                            }
                                        },
                                        "id": 5636,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "22846:8:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5637,
                                    "nodeType": "ExpressionStatement",
                                    "src": "22846:8:15"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5639,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 5631,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 13007,
                                            "src": "22816:3:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 5632,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": null,
                                        "src": "22816:10:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 5633,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 5630,
                                    "name": "onlyFactoryOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5669,
                                    "src": "22799:16:15",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "22799:28:15"
                            }
                        ],
                        "name": "pause",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5629,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "22796:2:15"
                        },
                        "returnParameters": {
                            "id": 5634,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "22835:0:15"
                        },
                        "scope": 5750,
                        "src": "22782:80:15",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5649,
                            "nodeType": "Block",
                            "src": "22929:29:15",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 5646,
                                            "name": "_unpause",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 12568,
                                            "src": "22940:8:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                                                "typeString": "function ()"
                                            }
                                        },
                                        "id": 5647,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "22940:10:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5648,
                                    "nodeType": "ExpressionStatement",
                                    "src": "22940:10:15"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5650,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 5642,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 13007,
                                            "src": "22910:3:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 5643,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": null,
                                        "src": "22910:10:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 5644,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 5641,
                                    "name": "onlyFactoryOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5669,
                                    "src": "22893:16:15",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "22893:28:15"
                            }
                        ],
                        "name": "unpause",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5640,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "22890:2:15"
                        },
                        "returnParameters": {
                            "id": 5645,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "22929:0:15"
                        },
                        "scope": 5750,
                        "src": "22874:84:15",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5668,
                            "nodeType": "Block",
                            "src": "23008:88:15",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5664,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "id": 5658,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5655,
                                                        "name": "sender",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5652,
                                                        "src": "23027:6:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [],
                                                        "expression": {
                                                            "argumentTypes": [],
                                                            "id": 5656,
                                                            "name": "owner",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 259,
                                                            "src": "23037:5:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                                                                "typeString": "function () view returns (address)"
                                                            }
                                                        },
                                                        "id": 5657,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "23037:7:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "23027:17:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "||",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "id": 5663,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5659,
                                                        "name": "sender",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5652,
                                                        "src": "23048:6:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 5661,
                                                                "name": "_factory",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3633,
                                                                "src": "23066:8:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                    "typeString": "contract ViaFactory"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                    "typeString": "contract ViaFactory"
                                                                }
                                                            ],
                                                            "id": 5660,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "23058:7:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": "address"
                                                        },
                                                        "id": 5662,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "23058:17:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "23048:27:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "src": "23027:48:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 5654,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "23019:7:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 5665,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "23019:57:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5666,
                                    "nodeType": "ExpressionStatement",
                                    "src": "23019:57:15"
                                },
                                {
                                    "id": 5667,
                                    "nodeType": "PlaceholderStatement",
                                    "src": "23087:1:15"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5669,
                        "name": "onlyFactoryOwner",
                        "nodeType": "ModifierDefinition",
                        "parameters": {
                            "id": 5653,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5652,
                                    "name": "sender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5669,
                                    "src": "22993:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5651,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "22993:7:15",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "22992:16:15"
                        },
                        "src": "22966:130:15",
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 5700,
                            "nodeType": "Block",
                            "src": "23181:339:15",
                            "statements": [
                                {
                                    "assignments": [
                                        5677
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 5677,
                                            "name": "tokenDecimals",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 5700,
                                            "src": "23275:21:15",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 5676,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "23275:7:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 5685,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "expression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 5680,
                                                                "name": "token",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5671,
                                                                "src": "23313:5:15",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IERC20_$409",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_IERC20_$409",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            ],
                                                            "id": 5679,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "23305:7:15",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": "address"
                                                        },
                                                        "id": 5681,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "23305:14:15",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 5678,
                                                    "name": "ERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 12538,
                                                    "src": "23299:5:15",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_ERC20_$12538_$",
                                                        "typeString": "type(contract ERC20)"
                                                    }
                                                },
                                                "id": 5682,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "23299:21:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ERC20_$12538",
                                                    "typeString": "contract ERC20"
                                                }
                                            },
                                            "id": 5683,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "decimals",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 12153,
                                            "src": "23299:30:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
                                                "typeString": "function () view external returns (uint8)"
                                            }
                                        },
                                        "id": 5684,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "23299:32:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "23275:56:15"
                                },
                                {
                                    "assignments": [
                                        5687
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 5687,
                                            "name": "decimalsDifference",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 5700,
                                            "src": "23409:26:15",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 5686,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "23409:7:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 5693,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "3138",
                                                "id": 5690,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "23447:2:15",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_18_by_1",
                                                    "typeString": "int_const 18"
                                                },
                                                "value": "18"
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5691,
                                                "name": "tokenDecimals",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5677,
                                                "src": "23451:13:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_rational_18_by_1",
                                                    "typeString": "int_const 18"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 5688,
                                                "name": "Math",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10483,
                                                "src": "23438:4:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                    "typeString": "type(library Math)"
                                                }
                                            },
                                            "id": 5689,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "sub",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 10300,
                                            "src": "23438:8:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                            }
                                        },
                                        "id": 5692,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "23438:27:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "23409:56:15"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 5698,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "31653138",
                                            "id": 5694,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "23483:4:15",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1000000000000000000_by_1",
                                                "typeString": "int_const 1000000000000000000"
                                            },
                                            "value": "1e18"
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "*",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "id": 5697,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "3130",
                                                "id": 5695,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "23490:2:15",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_10_by_1",
                                                    "typeString": "int_const 10"
                                                },
                                                "value": "10"
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "**",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "id": 5696,
                                                "name": "decimalsDifference",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5687,
                                                "src": "23494:18:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "src": "23490:22:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "23483:29:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 5675,
                                    "id": 5699,
                                    "nodeType": "Return",
                                    "src": "23476:36:15"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5701,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "_computeScalingFactor",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5672,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5671,
                                    "name": "token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5701,
                                    "src": "23135:12:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_IERC20_$409",
                                        "typeString": "contract IERC20"
                                    },
                                    "typeName": {
                                        "contractScope": null,
                                        "id": 5670,
                                        "name": "IERC20",
                                        "nodeType": "UserDefinedTypeName",
                                        "referencedDeclaration": 409,
                                        "src": "23135:6:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_IERC20_$409",
                                            "typeString": "contract IERC20"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "23134:14:15"
                        },
                        "returnParameters": {
                            "id": 5675,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5674,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5701,
                                    "src": "23172:7:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5673,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "23172:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "23171:9:15"
                        },
                        "scope": 5750,
                        "src": "23104:416:15",
                        "stateMutability": "view",
                        "superFunction": null,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 5716,
                            "nodeType": "Block",
                            "src": "23617:75:15",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 5712,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5703,
                                                "src": "23662:6:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5713,
                                                "name": "scalingFactor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5705,
                                                "src": "23670:13:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 5710,
                                                "name": "FixedPoint",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8909,
                                                "src": "23643:10:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                    "typeString": "type(library FixedPoint)"
                                                }
                                            },
                                            "id": 5711,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "mulDown",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8604,
                                            "src": "23643:18:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                            }
                                        },
                                        "id": 5714,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "23643:41:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 5709,
                                    "id": 5715,
                                    "nodeType": "Return",
                                    "src": "23636:48:15"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5717,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "_upscale",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5706,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5703,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5717,
                                    "src": "23546:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5702,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "23546:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5705,
                                    "name": "scalingFactor",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5717,
                                    "src": "23562:21:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5704,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "23562:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "23545:39:15"
                        },
                        "returnParameters": {
                            "id": 5709,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5708,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5717,
                                    "src": "23608:7:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5707,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "23608:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "23607:9:15"
                        },
                        "scope": 5750,
                        "src": "23528:164:15",
                        "stateMutability": "pure",
                        "superFunction": null,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 5732,
                            "nodeType": "Block",
                            "src": "23795:67:15",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 5728,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5719,
                                                "src": "23832:6:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5729,
                                                "name": "scalingFactor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5721,
                                                "src": "23840:13:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 5726,
                                                "name": "FixedPoint",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8909,
                                                "src": "23813:10:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                    "typeString": "type(library FixedPoint)"
                                                }
                                            },
                                            "id": 5727,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "divDown",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8695,
                                            "src": "23813:18:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                            }
                                        },
                                        "id": 5730,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "23813:41:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 5725,
                                    "id": 5731,
                                    "nodeType": "Return",
                                    "src": "23806:48:15"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5733,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "_downscaleDown",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5722,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5719,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5733,
                                    "src": "23724:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5718,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "23724:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5721,
                                    "name": "scalingFactor",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5733,
                                    "src": "23740:21:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5720,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "23740:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "23723:39:15"
                        },
                        "returnParameters": {
                            "id": 5725,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5724,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5733,
                                    "src": "23786:7:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5723,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "23786:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "23785:9:15"
                        },
                        "scope": 5750,
                        "src": "23700:162:15",
                        "stateMutability": "pure",
                        "superFunction": null,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 5748,
                            "nodeType": "Block",
                            "src": "23963:65:15",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 5744,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5735,
                                                "src": "23998:6:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5745,
                                                "name": "scalingFactor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5737,
                                                "src": "24006:13:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 5742,
                                                "name": "FixedPoint",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8909,
                                                "src": "23981:10:15",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                    "typeString": "type(library FixedPoint)"
                                                }
                                            },
                                            "id": 5743,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "divUp",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8745,
                                            "src": "23981:16:15",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                            }
                                        },
                                        "id": 5746,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "23981:39:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 5741,
                                    "id": 5747,
                                    "nodeType": "Return",
                                    "src": "23974:46:15"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5749,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "_downscaleUp",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5738,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5735,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5749,
                                    "src": "23892:14:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5734,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "23892:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5737,
                                    "name": "scalingFactor",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5749,
                                    "src": "23908:21:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5736,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "23908:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "23891:39:15"
                        },
                        "returnParameters": {
                            "id": 5741,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5740,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5749,
                                    "src": "23954:7:15",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5739,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "23954:7:15",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "23953:9:15"
                        },
                        "scope": 5750,
                        "src": "23870:158:15",
                        "stateMutability": "pure",
                        "superFunction": null,
                        "visibility": "internal"
                    }
                ],
                "scope": 5751,
                "src": "729:23304:15"
            }
        ],
        "src": "110:23923:15"
    },
    "legacyAST": {
        "attributes": {
            "absolutePath": "project:/contracts/Cash.sol",
            "exportedSymbols": {
                "Cash": [
                    5750
                ]
            }
        },
        "children": [
            {
                "attributes": {
                    "literals": [
                        "solidity",
                        "0.5",
                        ".7"
                    ]
                },
                "id": 3599,
                "name": "PragmaDirective",
                "src": "110:22:15"
            },
            {
                "attributes": {
                    "SourceUnit": 8213,
                    "absolutePath": "project:/contracts/interfaces/ViaCash.sol",
                    "file": "./interfaces/ViaCash.sol",
                    "scope": 5751,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3600,
                "name": "ImportDirective",
                "src": "136:34:15"
            },
            {
                "attributes": {
                    "SourceUnit": 8170,
                    "absolutePath": "project:/contracts/interfaces/ViaBond.sol",
                    "file": "./interfaces/ViaBond.sol",
                    "scope": 5751,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3601,
                "name": "ImportDirective",
                "src": "172:34:15"
            },
            {
                "attributes": {
                    "SourceUnit": 8500,
                    "absolutePath": "project:/contracts/interfaces/ViaToken.sol",
                    "file": "./interfaces/ViaToken.sol",
                    "scope": 5751,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3602,
                "name": "ImportDirective",
                "src": "208:35:15"
            },
            {
                "attributes": {
                    "SourceUnit": 8428,
                    "absolutePath": "project:/contracts/interfaces/ViaOracle.sol",
                    "file": "./interfaces/ViaOracle.sol",
                    "scope": 5751,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3603,
                "name": "ImportDirective",
                "src": "245:36:15"
            },
            {
                "attributes": {
                    "SourceUnit": 8403,
                    "absolutePath": "project:/contracts/interfaces/ViaFactory.sol",
                    "file": "./interfaces/ViaFactory.sol",
                    "scope": 5751,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3604,
                "name": "ImportDirective",
                "src": "283:37:15"
            },
            {
                "attributes": {
                    "SourceUnit": 8023,
                    "absolutePath": "project:/contracts/interfaces/VerifiedClient.sol",
                    "file": "./interfaces/VerifiedClient.sol",
                    "scope": 5751,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3605,
                "name": "ImportDirective",
                "src": "322:41:15"
            },
            {
                "attributes": {
                    "SourceUnit": 8062,
                    "absolutePath": "project:/contracts/interfaces/VerifiedRates.sol",
                    "file": "./interfaces/VerifiedRates.sol",
                    "scope": 5751,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3606,
                "name": "ImportDirective",
                "src": "365:40:15"
            },
            {
                "attributes": {
                    "SourceUnit": 10484,
                    "absolutePath": "project:/contracts/math/Math.sol",
                    "file": "./math/Math.sol",
                    "scope": 5751,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3607,
                "name": "ImportDirective",
                "src": "409:25:15"
            },
            {
                "attributes": {
                    "SourceUnit": 8910,
                    "absolutePath": "project:/contracts/math/FixedPoint.sol",
                    "file": "./math/FixedPoint.sol",
                    "scope": 5751,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3608,
                "name": "ImportDirective",
                "src": "436:31:15"
            },
            {
                "attributes": {
                    "SourceUnit": 12578,
                    "absolutePath": "project:/contracts/utilities/Pausable.sol",
                    "file": "./utilities/Pausable.sol",
                    "scope": 5751,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3609,
                "name": "ImportDirective",
                "src": "471:34:15"
            },
            {
                "attributes": {
                    "SourceUnit": 12993,
                    "absolutePath": "project:/contracts/utilities/StringUtils.sol",
                    "file": "./utilities/StringUtils.sol",
                    "scope": 5751,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3610,
                "name": "ImportDirective",
                "src": "507:37:15"
            },
            {
                "attributes": {
                    "SourceUnit": 12539,
                    "absolutePath": "project:/contracts/utilities/ERC20.sol",
                    "file": "./utilities/ERC20.sol",
                    "scope": 5751,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3611,
                "name": "ImportDirective",
                "src": "546:31:15"
            },
            {
                "attributes": {
                    "SourceUnit": 479,
                    "absolutePath": "@openzeppelin/upgrades/contracts/Initializable.sol",
                    "file": "@openzeppelin/upgrades/contracts/Initializable.sol",
                    "scope": 5751,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3612,
                "name": "ImportDirective",
                "src": "581:60:15"
            },
            {
                "attributes": {
                    "SourceUnit": 341,
                    "absolutePath": "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol",
                    "file": "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol",
                    "scope": 5751,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3613,
                "name": "ImportDirective",
                "src": "643:82:15"
            },
            {
                "attributes": {
                    "contractDependencies": [
                        29,
                        340,
                        409,
                        478,
                        8212,
                        12538,
                        12577
                    ],
                    "contractKind": "contract",
                    "documentation": null,
                    "fullyImplemented": true,
                    "linearizedBaseContracts": [
                        5750,
                        12577,
                        340,
                        12538,
                        409,
                        29,
                        478,
                        8212
                    ],
                    "name": "Cash",
                    "scope": 5751
                },
                "children": [
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "ViaCash",
                                    "referencedDeclaration": 8212,
                                    "type": "contract ViaCash"
                                },
                                "id": 3614,
                                "name": "UserDefinedTypeName",
                                "src": "746:7:15"
                            }
                        ],
                        "id": 3615,
                        "name": "InheritanceSpecifier",
                        "src": "746:7:15"
                    },
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "Initializable",
                                    "referencedDeclaration": 478,
                                    "type": "contract Initializable"
                                },
                                "id": 3616,
                                "name": "UserDefinedTypeName",
                                "src": "755:13:15"
                            }
                        ],
                        "id": 3617,
                        "name": "InheritanceSpecifier",
                        "src": "755:13:15"
                    },
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "ERC20",
                                    "referencedDeclaration": 12538,
                                    "type": "contract ERC20"
                                },
                                "id": 3618,
                                "name": "UserDefinedTypeName",
                                "src": "770:5:15"
                            }
                        ],
                        "id": 3619,
                        "name": "InheritanceSpecifier",
                        "src": "770:5:15"
                    },
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "Ownable",
                                    "referencedDeclaration": 340,
                                    "type": "contract Ownable"
                                },
                                "id": 3620,
                                "name": "UserDefinedTypeName",
                                "src": "777:7:15"
                            }
                        ],
                        "id": 3621,
                        "name": "InheritanceSpecifier",
                        "src": "777:7:15"
                    },
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "Pausable",
                                    "referencedDeclaration": 12577,
                                    "type": "contract Pausable"
                                },
                                "id": 3622,
                                "name": "UserDefinedTypeName",
                                "src": "786:8:15"
                            }
                        ],
                        "id": 3623,
                        "name": "InheritanceSpecifier",
                        "src": "786:8:15"
                    },
                    {
                        "attributes": {
                            "typeName": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "stringutils",
                                    "referencedDeclaration": 12992,
                                    "type": "library stringutils"
                                },
                                "id": 3624,
                                "name": "UserDefinedTypeName",
                                "src": "810:11:15"
                            }
                        ],
                        "id": 3625,
                        "name": "UsingForDirective",
                        "src": "804:24:15"
                    },
                    {
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "Math",
                                    "referencedDeclaration": 10483,
                                    "type": "library Math"
                                },
                                "id": 3626,
                                "name": "UserDefinedTypeName",
                                "src": "840:4:15"
                            },
                            {
                                "attributes": {
                                    "name": "uint256",
                                    "type": "uint256"
                                },
                                "id": 3627,
                                "name": "ElementaryTypeName",
                                "src": "849:7:15"
                            }
                        ],
                        "id": 3628,
                        "name": "UsingForDirective",
                        "src": "834:23:15"
                    },
                    {
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "FixedPoint",
                                    "referencedDeclaration": 8909,
                                    "type": "library FixedPoint"
                                },
                                "id": 3629,
                                "name": "UserDefinedTypeName",
                                "src": "869:10:15"
                            },
                            {
                                "attributes": {
                                    "name": "uint256",
                                    "type": "uint256"
                                },
                                "id": 3630,
                                "name": "ElementaryTypeName",
                                "src": "884:7:15"
                            }
                        ],
                        "id": 3631,
                        "name": "UsingForDirective",
                        "src": "863:29:15"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "_factory",
                            "scope": 5750,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "contract ViaFactory",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "ViaFactory",
                                    "referencedDeclaration": 8402,
                                    "type": "contract ViaFactory"
                                },
                                "id": 3632,
                                "name": "UserDefinedTypeName",
                                "src": "927:10:15"
                            }
                        ],
                        "id": 3633,
                        "name": "VariableDeclaration",
                        "src": "927:27:15"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "_rates",
                            "scope": 5750,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "contract VerifiedRates",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "VerifiedRates",
                                    "referencedDeclaration": 8061,
                                    "type": "contract VerifiedRates"
                                },
                                "id": 3634,
                                "name": "UserDefinedTypeName",
                                "src": "963:13:15"
                            }
                        ],
                        "id": 3635,
                        "name": "VariableDeclaration",
                        "src": "963:28:15"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "_oracle",
                            "scope": 5750,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "contract ViaOracle",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "ViaOracle",
                                    "referencedDeclaration": 8427,
                                    "type": "contract ViaOracle"
                                },
                                "id": 3636,
                                "name": "UserDefinedTypeName",
                                "src": "1018:9:15"
                            }
                        ],
                        "id": 3637,
                        "name": "VariableDeclaration",
                        "src": "1018:25:15"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "_cashtokenName",
                            "scope": 5750,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "bytes32",
                            "value": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "bytes32",
                                    "type": "bytes32"
                                },
                                "id": 3638,
                                "name": "ElementaryTypeName",
                                "src": "1096:7:15"
                            }
                        ],
                        "id": 3639,
                        "name": "VariableDeclaration",
                        "src": "1096:29:15"
                    },
                    {
                        "attributes": {
                            "canonicalName": "Cash.deposit",
                            "name": "deposit",
                            "scope": 5750,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "constant": false,
                                    "name": "depositAmount",
                                    "scope": 3646,
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "type": "uint256",
                                    "value": null,
                                    "visibility": "internal"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "uint256",
                                            "type": "uint256"
                                        },
                                        "id": 3640,
                                        "name": "ElementaryTypeName",
                                        "src": "1159:7:15"
                                    }
                                ],
                                "id": 3641,
                                "name": "VariableDeclaration",
                                "src": "1159:21:15"
                            },
                            {
                                "attributes": {
                                    "constant": false,
                                    "name": "issuedAmount",
                                    "scope": 3646,
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "type": "uint256",
                                    "value": null,
                                    "visibility": "internal"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "uint256",
                                            "type": "uint256"
                                        },
                                        "id": 3642,
                                        "name": "ElementaryTypeName",
                                        "src": "1191:7:15"
                                    }
                                ],
                                "id": 3643,
                                "name": "VariableDeclaration",
                                "src": "1191:20:15"
                            },
                            {
                                "attributes": {
                                    "constant": false,
                                    "name": "depositor",
                                    "scope": 3646,
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "type": "address",
                                    "value": null,
                                    "visibility": "internal"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "stateMutability": "nonpayable",
                                            "type": "address"
                                        },
                                        "id": 3644,
                                        "name": "ElementaryTypeName",
                                        "src": "1222:7:15"
                                    }
                                ],
                                "id": 3645,
                                "name": "VariableDeclaration",
                                "src": "1222:17:15"
                            }
                        ],
                        "id": 3646,
                        "name": "StructDefinition",
                        "src": "1134:113:15"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "currencies",
                            "scope": 5750,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "bytes32[]",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "length": null,
                                    "type": "bytes32[]"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 3647,
                                        "name": "ElementaryTypeName",
                                        "src": "1255:7:15"
                                    }
                                ],
                                "id": 3648,
                                "name": "ArrayTypeName",
                                "src": "1255:9:15"
                            }
                        ],
                        "id": 3649,
                        "name": "VariableDeclaration",
                        "src": "1255:28:15"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "currencyIndex",
                            "scope": 5750,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(bytes32 => uint256)",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(bytes32 => uint256)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 3650,
                                        "name": "ElementaryTypeName",
                                        "src": "1300:7:15"
                                    },
                                    {
                                        "attributes": {
                                            "name": "uint256",
                                            "type": "uint256"
                                        },
                                        "id": 3651,
                                        "name": "ElementaryTypeName",
                                        "src": "1311:7:15"
                                    }
                                ],
                                "id": 3652,
                                "name": "Mapping",
                                "src": "1292:27:15"
                            }
                        ],
                        "id": 3653,
                        "name": "VariableDeclaration",
                        "src": "1292:49:15"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "_deposits",
                            "scope": 5750,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit))",
                            "value": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit))"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 3654,
                                        "name": "ElementaryTypeName",
                                        "src": "1436:7:15"
                                    },
                                    {
                                        "attributes": {
                                            "type": "mapping(bytes32 => struct Cash.deposit)"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 3655,
                                                "name": "ElementaryTypeName",
                                                "src": "1455:7:15"
                                            },
                                            {
                                                "attributes": {
                                                    "contractScope": null,
                                                    "name": "deposit",
                                                    "referencedDeclaration": 3646,
                                                    "type": "struct Cash.deposit"
                                                },
                                                "id": 3656,
                                                "name": "UserDefinedTypeName",
                                                "src": "1466:7:15"
                                            }
                                        ],
                                        "id": 3657,
                                        "name": "Mapping",
                                        "src": "1447:27:15"
                                    }
                                ],
                                "id": 3658,
                                "name": "Mapping",
                                "src": "1428:47:15"
                            }
                        ],
                        "id": 3659,
                        "name": "VariableDeclaration",
                        "src": "1428:64:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "name": "onlyCustodian",
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "sender",
                                            "scope": 3665,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3660,
                                                "name": "ElementaryTypeName",
                                                "src": "1524:7:15"
                                            }
                                        ],
                                        "id": 3661,
                                        "name": "VariableDeclaration",
                                        "src": "1524:14:15"
                                    }
                                ],
                                "id": 3662,
                                "name": "ParameterList",
                                "src": "1523:16:15"
                            },
                            {
                                "children": [
                                    {
                                        "id": 3663,
                                        "name": "PlaceholderStatement",
                                        "src": "1728:1:15"
                                    }
                                ],
                                "id": 3664,
                                "name": "Block",
                                "src": "1539:198:15"
                            }
                        ],
                        "id": 3665,
                        "name": "ModifierDefinition",
                        "src": "1501:236:15"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "documentation": null,
                            "name": "CashIssued"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "name": "party",
                                            "scope": 3675,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3666,
                                                "name": "ElementaryTypeName",
                                                "src": "1812:7:15"
                                            }
                                        ],
                                        "id": 3667,
                                        "name": "VariableDeclaration",
                                        "src": "1812:21:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "currency",
                                            "scope": 3675,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 3668,
                                                "name": "ElementaryTypeName",
                                                "src": "1835:7:15"
                                            }
                                        ],
                                        "id": 3669,
                                        "name": "VariableDeclaration",
                                        "src": "1835:16:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "amount",
                                            "scope": 3675,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3670,
                                                "name": "ElementaryTypeName",
                                                "src": "1853:7:15"
                                            }
                                        ],
                                        "id": 3671,
                                        "name": "VariableDeclaration",
                                        "src": "1853:14:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "balance",
                                            "scope": 3675,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3672,
                                                "name": "ElementaryTypeName",
                                                "src": "1869:7:15"
                                            }
                                        ],
                                        "id": 3673,
                                        "name": "VariableDeclaration",
                                        "src": "1869:15:15"
                                    }
                                ],
                                "id": 3674,
                                "name": "ParameterList",
                                "src": "1811:74:15"
                            }
                        ],
                        "id": 3675,
                        "name": "EventDefinition",
                        "src": "1795:91:15"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "documentation": null,
                            "name": "CashRedeemed"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "name": "party",
                                            "scope": 3687,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3676,
                                                "name": "ElementaryTypeName",
                                                "src": "1911:7:15"
                                            }
                                        ],
                                        "id": 3677,
                                        "name": "VariableDeclaration",
                                        "src": "1911:21:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "currency",
                                            "scope": 3687,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 3678,
                                                "name": "ElementaryTypeName",
                                                "src": "1934:7:15"
                                            }
                                        ],
                                        "id": 3679,
                                        "name": "VariableDeclaration",
                                        "src": "1934:16:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "amount",
                                            "scope": 3687,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3680,
                                                "name": "ElementaryTypeName",
                                                "src": "1952:7:15"
                                            }
                                        ],
                                        "id": 3681,
                                        "name": "VariableDeclaration",
                                        "src": "1952:14:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "redeemedFor",
                                            "scope": 3687,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3682,
                                                "name": "ElementaryTypeName",
                                                "src": "1968:7:15"
                                            }
                                        ],
                                        "id": 3683,
                                        "name": "VariableDeclaration",
                                        "src": "1968:19:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "balance",
                                            "scope": 3687,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3684,
                                                "name": "ElementaryTypeName",
                                                "src": "1989:7:15"
                                            }
                                        ],
                                        "id": 3685,
                                        "name": "VariableDeclaration",
                                        "src": "1989:15:15"
                                    }
                                ],
                                "id": 3686,
                                "name": "ParameterList",
                                "src": "1910:95:15"
                            }
                        ],
                        "id": 3687,
                        "name": "EventDefinition",
                        "src": "1892:114:15"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "documentation": null,
                            "name": "CashDeposits"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "name": "party",
                                            "scope": 3695,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3688,
                                                "name": "ElementaryTypeName",
                                                "src": "2031:7:15"
                                            }
                                        ],
                                        "id": 3689,
                                        "name": "VariableDeclaration",
                                        "src": "2031:21:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "currency",
                                            "scope": 3695,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 3690,
                                                "name": "ElementaryTypeName",
                                                "src": "2054:7:15"
                                            }
                                        ],
                                        "id": 3691,
                                        "name": "VariableDeclaration",
                                        "src": "2054:16:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "amount",
                                            "scope": 3695,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3692,
                                                "name": "ElementaryTypeName",
                                                "src": "2072:7:15"
                                            }
                                        ],
                                        "id": 3693,
                                        "name": "VariableDeclaration",
                                        "src": "2072:14:15"
                                    }
                                ],
                                "id": 3694,
                                "name": "ParameterList",
                                "src": "2030:57:15"
                            }
                        ],
                        "id": 3695,
                        "name": "EventDefinition",
                        "src": "2012:76:15"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "documentation": null,
                            "name": "CashTransfer"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "name": "party",
                                            "scope": 3707,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3696,
                                                "name": "ElementaryTypeName",
                                                "src": "2113:7:15"
                                            }
                                        ],
                                        "id": 3697,
                                        "name": "VariableDeclaration",
                                        "src": "2113:21:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "name": "counterparty",
                                            "scope": 3707,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3698,
                                                "name": "ElementaryTypeName",
                                                "src": "2136:7:15"
                                            }
                                        ],
                                        "id": 3699,
                                        "name": "VariableDeclaration",
                                        "src": "2136:28:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "currency",
                                            "scope": 3707,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 3700,
                                                "name": "ElementaryTypeName",
                                                "src": "2166:7:15"
                                            }
                                        ],
                                        "id": 3701,
                                        "name": "VariableDeclaration",
                                        "src": "2166:16:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "amount",
                                            "scope": 3707,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3702,
                                                "name": "ElementaryTypeName",
                                                "src": "2184:7:15"
                                            }
                                        ],
                                        "id": 3703,
                                        "name": "VariableDeclaration",
                                        "src": "2184:14:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "deposit",
                                            "scope": 3707,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3704,
                                                "name": "ElementaryTypeName",
                                                "src": "2200:7:15"
                                            }
                                        ],
                                        "id": 3705,
                                        "name": "VariableDeclaration",
                                        "src": "2200:15:15"
                                    }
                                ],
                                "id": 3706,
                                "name": "ParameterList",
                                "src": "2112:104:15"
                            }
                        ],
                        "id": 3707,
                        "name": "EventDefinition",
                        "src": "2094:123:15"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "_lock",
                            "scope": 5750,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(bytes32 => bool)",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(bytes32 => bool)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 3708,
                                        "name": "ElementaryTypeName",
                                        "src": "2246:7:15"
                                    },
                                    {
                                        "attributes": {
                                            "name": "bool",
                                            "type": "bool"
                                        },
                                        "id": 3709,
                                        "name": "ElementaryTypeName",
                                        "src": "2257:4:15"
                                    }
                                ],
                                "id": 3710,
                                "name": "Mapping",
                                "src": "2238:24:15"
                            }
                        ],
                        "id": 3711,
                        "name": "VariableDeclaration",
                        "src": "2238:38:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "initialize",
                            "scope": 5750,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "name",
                                            "scope": 3775,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 3712,
                                                "name": "ElementaryTypeName",
                                                "src": "2331:7:15"
                                            }
                                        ],
                                        "id": 3713,
                                        "name": "VariableDeclaration",
                                        "src": "2331:12:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "currency",
                                            "scope": 3775,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 3714,
                                                "name": "ElementaryTypeName",
                                                "src": "2345:7:15"
                                            }
                                        ],
                                        "id": 3715,
                                        "name": "VariableDeclaration",
                                        "src": "2345:16:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "owner",
                                            "scope": 3775,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3716,
                                                "name": "ElementaryTypeName",
                                                "src": "2363:7:15"
                                            }
                                        ],
                                        "id": 3717,
                                        "name": "VariableDeclaration",
                                        "src": "2363:13:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "oracle",
                                            "scope": 3775,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3718,
                                                "name": "ElementaryTypeName",
                                                "src": "2378:7:15"
                                            }
                                        ],
                                        "id": 3719,
                                        "name": "VariableDeclaration",
                                        "src": "2378:14:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "token",
                                            "scope": 3775,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3720,
                                                "name": "ElementaryTypeName",
                                                "src": "2394:7:15"
                                            }
                                        ],
                                        "id": 3721,
                                        "name": "VariableDeclaration",
                                        "src": "2394:13:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "fee",
                                            "scope": 3775,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3722,
                                                "name": "ElementaryTypeName",
                                                "src": "2409:7:15"
                                            }
                                        ],
                                        "id": 3723,
                                        "name": "VariableDeclaration",
                                        "src": "2409:11:15"
                                    }
                                ],
                                "id": 3724,
                                "name": "ParameterList",
                                "src": "2330:91:15"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 3727,
                                "name": "ParameterList",
                                "src": "2440:0:15"
                            },
                            {
                                "attributes": {
                                    "arguments": null
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 453,
                                            "type": "modifier ()",
                                            "value": "initializer"
                                        },
                                        "id": 3725,
                                        "name": "Identifier",
                                        "src": "2429:11:15"
                                    }
                                ],
                                "id": 3726,
                                "name": "ModifierInvocation",
                                "src": "2429:11:15"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "initialize",
                                                            "referencedDeclaration": 251,
                                                            "type": "function (address)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 340,
                                                                    "type": "type(contract Ownable)",
                                                                    "value": "Ownable"
                                                                },
                                                                "id": 3728,
                                                                "name": "Identifier",
                                                                "src": "2451:7:15"
                                                            }
                                                        ],
                                                        "id": 3730,
                                                        "name": "MemberAccess",
                                                        "src": "2451:18:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3717,
                                                            "type": "address",
                                                            "value": "owner"
                                                        },
                                                        "id": 3731,
                                                        "name": "Identifier",
                                                        "src": "2470:5:15"
                                                    }
                                                ],
                                                "id": 3732,
                                                "name": "FunctionCall",
                                                "src": "2451:25:15"
                                            }
                                        ],
                                        "id": 3733,
                                        "name": "ExpressionStatement",
                                        "src": "2451:25:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "contract ViaFactory"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3633,
                                                            "type": "contract ViaFactory",
                                                            "value": "_factory"
                                                        },
                                                        "id": 3734,
                                                        "name": "Identifier",
                                                        "src": "2495:8:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "contract ViaFactory",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address_payable",
                                                                            "typeString": "address payable"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8402,
                                                                    "type": "type(contract ViaFactory)",
                                                                    "value": "ViaFactory"
                                                                },
                                                                "id": 3735,
                                                                "name": "Identifier",
                                                                "src": "2506:10:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sender",
                                                                    "referencedDeclaration": null,
                                                                    "type": "address payable"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 13007,
                                                                            "type": "msg",
                                                                            "value": "msg"
                                                                        },
                                                                        "id": 3736,
                                                                        "name": "Identifier",
                                                                        "src": "2517:3:15"
                                                                    }
                                                                ],
                                                                "id": 3737,
                                                                "name": "MemberAccess",
                                                                "src": "2517:10:15"
                                                            }
                                                        ],
                                                        "id": 3738,
                                                        "name": "FunctionCall",
                                                        "src": "2506:22:15"
                                                    }
                                                ],
                                                "id": 3739,
                                                "name": "Assignment",
                                                "src": "2495:33:15"
                                            }
                                        ],
                                        "id": 3740,
                                        "name": "ExpressionStatement",
                                        "src": "2495:33:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "contract ViaOracle"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3637,
                                                            "type": "contract ViaOracle",
                                                            "value": "_oracle"
                                                        },
                                                        "id": 3741,
                                                        "name": "Identifier",
                                                        "src": "2539:7:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "contract ViaOracle",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8427,
                                                                    "type": "type(contract ViaOracle)",
                                                                    "value": "ViaOracle"
                                                                },
                                                                "id": 3742,
                                                                "name": "Identifier",
                                                                "src": "2549:9:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3719,
                                                                    "type": "address",
                                                                    "value": "oracle"
                                                                },
                                                                "id": 3743,
                                                                "name": "Identifier",
                                                                "src": "2559:6:15"
                                                            }
                                                        ],
                                                        "id": 3744,
                                                        "name": "FunctionCall",
                                                        "src": "2549:17:15"
                                                    }
                                                ],
                                                "id": 3745,
                                                "name": "Assignment",
                                                "src": "2539:27:15"
                                            }
                                        ],
                                        "id": 3746,
                                        "name": "ExpressionStatement",
                                        "src": "2539:27:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                    "typeString": "string memory"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 12127,
                                                            "type": "function (string memory)",
                                                            "value": "setName"
                                                        },
                                                        "id": 3747,
                                                        "name": "Identifier",
                                                        "src": "2577:7:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "string memory",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                                            "typeString": "bytes memory"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(string storage pointer)",
                                                                    "value": "string"
                                                                },
                                                                "id": 3748,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "2585:6:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bytes memory",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "member_name": "encodePacked",
                                                                            "referencedDeclaration": null,
                                                                            "type": "function () pure returns (bytes memory)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 12994,
                                                                                    "type": "abi",
                                                                                    "value": "abi"
                                                                                },
                                                                                "id": 3749,
                                                                                "name": "Identifier",
                                                                                "src": "2592:3:15"
                                                                            }
                                                                        ],
                                                                        "id": 3750,
                                                                        "name": "MemberAccess",
                                                                        "src": "2592:16:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3713,
                                                                            "type": "bytes32",
                                                                            "value": "name"
                                                                        },
                                                                        "id": 3751,
                                                                        "name": "Identifier",
                                                                        "src": "2609:4:15"
                                                                    }
                                                                ],
                                                                "id": 3752,
                                                                "name": "FunctionCall",
                                                                "src": "2592:22:15"
                                                            }
                                                        ],
                                                        "id": 3753,
                                                        "name": "FunctionCall",
                                                        "src": "2585:30:15"
                                                    }
                                                ],
                                                "id": 3754,
                                                "name": "FunctionCall",
                                                "src": "2577:39:15"
                                            }
                                        ],
                                        "id": 3755,
                                        "name": "ExpressionStatement",
                                        "src": "2577:39:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                    "typeString": "string memory"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 12145,
                                                            "type": "function (string memory)",
                                                            "value": "setSymbol"
                                                        },
                                                        "id": 3756,
                                                        "name": "Identifier",
                                                        "src": "2627:9:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "string memory",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                            "typeString": "int_const 0"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_rational_5_by_1",
                                                                            "typeString": "int_const 5"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "substring",
                                                                    "referencedDeclaration": 12724,
                                                                    "type": "function (bytes32,uint256,uint256) pure returns (string memory)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3713,
                                                                            "type": "bytes32",
                                                                            "value": "name"
                                                                        },
                                                                        "id": 3757,
                                                                        "name": "Identifier",
                                                                        "src": "2637:4:15"
                                                                    }
                                                                ],
                                                                "id": 3758,
                                                                "name": "MemberAccess",
                                                                "src": "2637:14:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 3759,
                                                                "name": "Literal",
                                                                "src": "2652:1:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "35",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 5",
                                                                    "value": "5"
                                                                },
                                                                "id": 3760,
                                                                "name": "Literal",
                                                                "src": "2654:1:15"
                                                            }
                                                        ],
                                                        "id": 3761,
                                                        "name": "FunctionCall",
                                                        "src": "2637:19:15"
                                                    }
                                                ],
                                                "id": 3762,
                                                "name": "FunctionCall",
                                                "src": "2627:30:15"
                                            }
                                        ],
                                        "id": 3763,
                                        "name": "ExpressionStatement",
                                        "src": "2627:30:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "bytes32"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3639,
                                                            "type": "bytes32",
                                                            "value": "_cashtokenName"
                                                        },
                                                        "id": 3764,
                                                        "name": "Identifier",
                                                        "src": "2668:14:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3715,
                                                            "type": "bytes32",
                                                            "value": "currency"
                                                        },
                                                        "id": 3765,
                                                        "name": "Identifier",
                                                        "src": "2685:8:15"
                                                    }
                                                ],
                                                "id": 3766,
                                                "name": "Assignment",
                                                "src": "2668:25:15"
                                            }
                                        ],
                                        "id": 3767,
                                        "name": "ExpressionStatement",
                                        "src": "2668:25:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "contract VerifiedRates"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3635,
                                                            "type": "contract VerifiedRates",
                                                            "value": "_rates"
                                                        },
                                                        "id": 3768,
                                                        "name": "Identifier",
                                                        "src": "2704:6:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "contract VerifiedRates",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8061,
                                                                    "type": "type(contract VerifiedRates)",
                                                                    "value": "VerifiedRates"
                                                                },
                                                                "id": 3769,
                                                                "name": "Identifier",
                                                                "src": "2713:13:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3723,
                                                                    "type": "address",
                                                                    "value": "fee"
                                                                },
                                                                "id": 3770,
                                                                "name": "Identifier",
                                                                "src": "2727:3:15"
                                                            }
                                                        ],
                                                        "id": 3771,
                                                        "name": "FunctionCall",
                                                        "src": "2713:18:15"
                                                    }
                                                ],
                                                "id": 3772,
                                                "name": "Assignment",
                                                "src": "2704:27:15"
                                            }
                                        ],
                                        "id": 3773,
                                        "name": "ExpressionStatement",
                                        "src": "2704:27:15"
                                    }
                                ],
                                "id": 3774,
                                "name": "Block",
                                "src": "2440:299:15"
                            }
                        ],
                        "id": 3775,
                        "name": "FunctionDefinition",
                        "src": "2311:428:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "fallback",
                            "modifiers": [
                                null
                            ],
                            "name": "",
                            "scope": 5750,
                            "stateMutability": "payable",
                            "superFunction": null,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 3776,
                                "name": "ParameterList",
                                "src": "2816:2:15"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 3777,
                                "name": "ParameterList",
                                "src": "2836:0:15"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 3778,
                                                        "name": "Identifier",
                                                        "src": "2872:7:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "!=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "value",
                                                                    "referencedDeclaration": null,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 13007,
                                                                            "type": "msg",
                                                                            "value": "msg"
                                                                        },
                                                                        "id": 3779,
                                                                        "name": "Identifier",
                                                                        "src": "2880:3:15"
                                                                    }
                                                                ],
                                                                "id": 3780,
                                                                "name": "MemberAccess",
                                                                "src": "2880:9:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 3781,
                                                                "name": "Literal",
                                                                "src": "2892:1:15"
                                                            }
                                                        ],
                                                        "id": 3782,
                                                        "name": "BinaryOperation",
                                                        "src": "2880:13:15"
                                                    }
                                                ],
                                                "id": 3783,
                                                "name": "FunctionCall",
                                                "src": "2872:22:15"
                                            }
                                        ],
                                        "id": 3784,
                                        "name": "ExpressionStatement",
                                        "src": "2872:22:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 3785,
                                                        "name": "Identifier",
                                                        "src": "2937:7:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "length",
                                                                    "referencedDeclaration": null,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "data",
                                                                            "referencedDeclaration": null,
                                                                            "type": "bytes calldata"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 13007,
                                                                                    "type": "msg",
                                                                                    "value": "msg"
                                                                                },
                                                                                "id": 3786,
                                                                                "name": "Identifier",
                                                                                "src": "2945:3:15"
                                                                            }
                                                                        ],
                                                                        "id": 3787,
                                                                        "name": "MemberAccess",
                                                                        "src": "2945:8:15"
                                                                    }
                                                                ],
                                                                "id": 3788,
                                                                "name": "MemberAccess",
                                                                "src": "2945:15:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 3789,
                                                                "name": "Literal",
                                                                "src": "2962:1:15"
                                                            }
                                                        ],
                                                        "id": 3790,
                                                        "name": "BinaryOperation",
                                                        "src": "2945:18:15"
                                                    }
                                                ],
                                                "id": 3791,
                                                "name": "FunctionCall",
                                                "src": "2937:27:15"
                                            }
                                        ],
                                        "id": 3792,
                                        "name": "ExpressionStatement",
                                        "src": "2937:27:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 3793,
                                                        "name": "Identifier",
                                                        "src": "3014:7:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 12542,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 3794,
                                                                "name": "Identifier",
                                                                "src": "3022:6:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 3795,
                                                                "name": "Literal",
                                                                "src": "3032:5:15"
                                                            }
                                                        ],
                                                        "id": 3796,
                                                        "name": "BinaryOperation",
                                                        "src": "3022:15:15"
                                                    }
                                                ],
                                                "id": 3797,
                                                "name": "FunctionCall",
                                                "src": "3014:24:15"
                                            }
                                        ],
                                        "id": 3798,
                                        "name": "ExpressionStatement",
                                        "src": "3014:24:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 3799,
                                                        "name": "Identifier",
                                                        "src": "3077:7:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bool",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address_payable",
                                                                                    "typeString": "address payable"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5628,
                                                                            "type": "function (address) view returns (bool)",
                                                                            "value": "amlCheck"
                                                                        },
                                                                        "id": 3800,
                                                                        "name": "Identifier",
                                                                        "src": "3085:8:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "sender",
                                                                            "referencedDeclaration": null,
                                                                            "type": "address payable"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 13007,
                                                                                    "type": "msg",
                                                                                    "value": "msg"
                                                                                },
                                                                                "id": 3801,
                                                                                "name": "Identifier",
                                                                                "src": "3094:3:15"
                                                                            }
                                                                        ],
                                                                        "id": 3802,
                                                                        "name": "MemberAccess",
                                                                        "src": "3094:10:15"
                                                                    }
                                                                ],
                                                                "id": 3803,
                                                                "name": "FunctionCall",
                                                                "src": "3085:20:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "74727565",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "true"
                                                                },
                                                                "id": 3804,
                                                                "name": "Literal",
                                                                "src": "3107:4:15"
                                                            }
                                                        ],
                                                        "id": 3805,
                                                        "name": "BinaryOperation",
                                                        "src": "3085:26:15"
                                                    }
                                                ],
                                                "id": 3806,
                                                "name": "FunctionCall",
                                                "src": "3077:35:15"
                                            }
                                        ],
                                        "id": 3807,
                                        "name": "ExpressionStatement",
                                        "src": "3077:35:15"
                                    },
                                    {
                                        "attributes": {
                                            "falseBody": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3653,
                                                                    "type": "mapping(bytes32 => uint256)",
                                                                    "value": "currencyIndex"
                                                                },
                                                                "id": 3808,
                                                                "name": "Identifier",
                                                                "src": "3181:13:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "6574686572",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "string",
                                                                    "type": "literal_string \"ether\"",
                                                                    "value": "ether"
                                                                },
                                                                "id": 3809,
                                                                "name": "Literal",
                                                                "src": "3195:7:15"
                                                            }
                                                        ],
                                                        "id": 3810,
                                                        "name": "IndexAccess",
                                                        "src": "3181:22:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 3811,
                                                        "name": "Literal",
                                                        "src": "3205:1:15"
                                                    }
                                                ],
                                                "id": 3812,
                                                "name": "BinaryOperation",
                                                "src": "3181:25:15"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_stringliteral_13730b0d8e1bdbdc293b62ba010b1eede56b412ea2980defabe3d0b6c7844c3a",
                                                                                    "typeString": "literal_string \"ether\""
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "push",
                                                                            "referencedDeclaration": null,
                                                                            "type": "function (bytes32) returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3649,
                                                                                    "type": "bytes32[] storage ref",
                                                                                    "value": "currencies"
                                                                                },
                                                                                "id": 3813,
                                                                                "name": "Identifier",
                                                                                "src": "3222:10:15"
                                                                            }
                                                                        ],
                                                                        "id": 3815,
                                                                        "name": "MemberAccess",
                                                                        "src": "3222:15:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "6574686572",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"ether\"",
                                                                            "value": "ether"
                                                                        },
                                                                        "id": 3816,
                                                                        "name": "Literal",
                                                                        "src": "3238:7:15"
                                                                    }
                                                                ],
                                                                "id": 3817,
                                                                "name": "FunctionCall",
                                                                "src": "3222:24:15"
                                                            }
                                                        ],
                                                        "id": 3818,
                                                        "name": "ExpressionStatement",
                                                        "src": "3222:24:15"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3653,
                                                                                    "type": "mapping(bytes32 => uint256)",
                                                                                    "value": "currencyIndex"
                                                                                },
                                                                                "id": 3819,
                                                                                "name": "Identifier",
                                                                                "src": "3261:13:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "6574686572",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "string",
                                                                                    "type": "literal_string \"ether\"",
                                                                                    "value": "ether"
                                                                                },
                                                                                "id": 3820,
                                                                                "name": "Literal",
                                                                                "src": "3275:7:15"
                                                                            }
                                                                        ],
                                                                        "id": 3821,
                                                                        "name": "IndexAccess",
                                                                        "src": "3261:22:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "length",
                                                                            "referencedDeclaration": null,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3649,
                                                                                    "type": "bytes32[] storage ref",
                                                                                    "value": "currencies"
                                                                                },
                                                                                "id": 3822,
                                                                                "name": "Identifier",
                                                                                "src": "3286:10:15"
                                                                            }
                                                                        ],
                                                                        "id": 3823,
                                                                        "name": "MemberAccess",
                                                                        "src": "3286:17:15"
                                                                    }
                                                                ],
                                                                "id": 3824,
                                                                "name": "Assignment",
                                                                "src": "3261:42:15"
                                                            }
                                                        ],
                                                        "id": 3825,
                                                        "name": "ExpressionStatement",
                                                        "src": "3261:42:15"
                                                    }
                                                ],
                                                "id": 3826,
                                                "name": "Block",
                                                "src": "3207:108:15"
                                            }
                                        ],
                                        "id": 3827,
                                        "name": "IfStatement",
                                        "src": "3178:137:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_13730b0d8e1bdbdc293b62ba010b1eede56b412ea2980defabe3d0b6c7844c3a",
                                                                    "typeString": "literal_string \"ether\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4094,
                                                            "type": "function (uint256,address,bytes32)",
                                                            "value": "makeDeposit"
                                                        },
                                                        "id": 3828,
                                                        "name": "Identifier",
                                                        "src": "3358:11:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "value",
                                                            "referencedDeclaration": null,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 13007,
                                                                    "type": "msg",
                                                                    "value": "msg"
                                                                },
                                                                "id": 3829,
                                                                "name": "Identifier",
                                                                "src": "3370:3:15"
                                                            }
                                                        ],
                                                        "id": 3830,
                                                        "name": "MemberAccess",
                                                        "src": "3370:9:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "sender",
                                                            "referencedDeclaration": null,
                                                            "type": "address payable"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 13007,
                                                                    "type": "msg",
                                                                    "value": "msg"
                                                                },
                                                                "id": 3831,
                                                                "name": "Identifier",
                                                                "src": "3381:3:15"
                                                            }
                                                        ],
                                                        "id": 3832,
                                                        "name": "MemberAccess",
                                                        "src": "3381:10:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "6574686572",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"ether\"",
                                                            "value": "ether"
                                                        },
                                                        "id": 3833,
                                                        "name": "Literal",
                                                        "src": "3393:7:15"
                                                    }
                                                ],
                                                "id": 3834,
                                                "name": "FunctionCall",
                                                "src": "3358:43:15"
                                            }
                                        ],
                                        "id": 3835,
                                        "name": "ExpressionStatement",
                                        "src": "3358:43:15"
                                    }
                                ],
                                "id": 3836,
                                "name": "Block",
                                "src": "2836:581:15"
                            }
                        ],
                        "id": 3837,
                        "name": "FunctionDefinition",
                        "src": "2808:609:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "requestIssue",
                            "scope": 5750,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 3980,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3838,
                                                "name": "ElementaryTypeName",
                                                "src": "3486:7:15"
                                            }
                                        ],
                                        "id": 3839,
                                        "name": "VariableDeclaration",
                                        "src": "3486:14:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "buyer",
                                            "scope": 3980,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3840,
                                                "name": "ElementaryTypeName",
                                                "src": "3502:7:15"
                                            }
                                        ],
                                        "id": 3841,
                                        "name": "VariableDeclaration",
                                        "src": "3502:13:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "currency",
                                            "scope": 3980,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 3842,
                                                "name": "ElementaryTypeName",
                                                "src": "3517:7:15"
                                            }
                                        ],
                                        "id": 3843,
                                        "name": "VariableDeclaration",
                                        "src": "3517:16:15"
                                    }
                                ],
                                "id": 3844,
                                "name": "ParameterList",
                                "src": "3485:49:15"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 3845,
                                "name": "ParameterList",
                                "src": "3542:0:15"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 3846,
                                                        "name": "Identifier",
                                                        "src": "3553:7:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "||",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "bytes32",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address_payable",
                                                                                            "typeString": "address payable"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "getType",
                                                                                    "referencedDeclaration": 8240,
                                                                                    "type": "function (address) view external returns (bytes32)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3633,
                                                                                            "type": "contract ViaFactory",
                                                                                            "value": "_factory"
                                                                                        },
                                                                                        "id": 3847,
                                                                                        "name": "Identifier",
                                                                                        "src": "3561:8:15"
                                                                                    }
                                                                                ],
                                                                                "id": 3848,
                                                                                "name": "MemberAccess",
                                                                                "src": "3561:16:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "sender",
                                                                                    "referencedDeclaration": null,
                                                                                    "type": "address payable"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 13007,
                                                                                            "type": "msg",
                                                                                            "value": "msg"
                                                                                        },
                                                                                        "id": 3849,
                                                                                        "name": "Identifier",
                                                                                        "src": "3578:3:15"
                                                                                    }
                                                                                ],
                                                                                "id": 3850,
                                                                                "name": "MemberAccess",
                                                                                "src": "3578:10:15"
                                                                            }
                                                                        ],
                                                                        "id": 3851,
                                                                        "name": "FunctionCall",
                                                                        "src": "3561:28:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "56696143617368",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"ViaCash\"",
                                                                            "value": "ViaCash"
                                                                        },
                                                                        "id": 3852,
                                                                        "name": "Literal",
                                                                        "src": "3593:9:15"
                                                                    }
                                                                ],
                                                                "id": 3853,
                                                                "name": "BinaryOperation",
                                                                "src": "3561:41:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "bool",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "checkSupportForToken",
                                                                                    "referencedDeclaration": 8394,
                                                                                    "type": "function (bytes32) view external returns (bool)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3633,
                                                                                            "type": "contract ViaFactory",
                                                                                            "value": "_factory"
                                                                                        },
                                                                                        "id": 3854,
                                                                                        "name": "Identifier",
                                                                                        "src": "3606:8:15"
                                                                                    }
                                                                                ],
                                                                                "id": 3855,
                                                                                "name": "MemberAccess",
                                                                                "src": "3606:29:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3843,
                                                                                    "type": "bytes32",
                                                                                    "value": "currency"
                                                                                },
                                                                                "id": 3856,
                                                                                "name": "Identifier",
                                                                                "src": "3636:8:15"
                                                                            }
                                                                        ],
                                                                        "id": 3857,
                                                                        "name": "FunctionCall",
                                                                        "src": "3606:39:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "74727565",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "bool",
                                                                            "type": "bool",
                                                                            "value": "true"
                                                                        },
                                                                        "id": 3858,
                                                                        "name": "Literal",
                                                                        "src": "3647:4:15"
                                                                    }
                                                                ],
                                                                "id": 3859,
                                                                "name": "BinaryOperation",
                                                                "src": "3606:45:15"
                                                            }
                                                        ],
                                                        "id": 3860,
                                                        "name": "BinaryOperation",
                                                        "src": "3561:90:15"
                                                    }
                                                ],
                                                "id": 3861,
                                                "name": "FunctionCall",
                                                "src": "3553:99:15"
                                            }
                                        ],
                                        "id": 3862,
                                        "name": "ExpressionStatement",
                                        "src": "3553:99:15"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                3864
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "status",
                                                    "scope": 3979,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "bool",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bool",
                                                            "type": "bool"
                                                        },
                                                        "id": 3863,
                                                        "name": "ElementaryTypeName",
                                                        "src": "3663:4:15"
                                                    }
                                                ],
                                                "id": 3864,
                                                "name": "VariableDeclaration",
                                                "src": "3663:11:15"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "hexvalue": "74727565",
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "subdenomination": null,
                                                    "token": "bool",
                                                    "type": "bool",
                                                    "value": "true"
                                                },
                                                "id": 3865,
                                                "name": "Literal",
                                                "src": "3677:4:15"
                                            }
                                        ],
                                        "id": 3866,
                                        "name": "VariableDeclarationStatement",
                                        "src": "3663:18:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "bool",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "checkSupportForToken",
                                                                    "referencedDeclaration": 8394,
                                                                    "type": "function (bytes32) view external returns (bool)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3633,
                                                                            "type": "contract ViaFactory",
                                                                            "value": "_factory"
                                                                        },
                                                                        "id": 3867,
                                                                        "name": "Identifier",
                                                                        "src": "3695:8:15"
                                                                    }
                                                                ],
                                                                "id": 3868,
                                                                "name": "MemberAccess",
                                                                "src": "3695:29:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3843,
                                                                    "type": "bytes32",
                                                                    "value": "currency"
                                                                },
                                                                "id": 3869,
                                                                "name": "Identifier",
                                                                "src": "3725:8:15"
                                                            }
                                                        ],
                                                        "id": 3870,
                                                        "name": "FunctionCall",
                                                        "src": "3695:39:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "74727565",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "true"
                                                        },
                                                        "id": 3871,
                                                        "name": "Literal",
                                                        "src": "3736:4:15"
                                                    }
                                                ],
                                                "id": 3872,
                                                "name": "BinaryOperation",
                                                "src": "3695:45:15"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                3874
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "name": "token",
                                                                    "scope": 3912,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "address",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address",
                                                                            "stateMutability": "nonpayable",
                                                                            "type": "address"
                                                                        },
                                                                        "id": 3873,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "3856:7:15"
                                                                    }
                                                                ],
                                                                "id": 3874,
                                                                "name": "VariableDeclaration",
                                                                "src": "3856:13:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "address",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "getCurrencyToken",
                                                                            "referencedDeclaration": 8401,
                                                                            "type": "function (bytes32) view external returns (address)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3633,
                                                                                    "type": "contract ViaFactory",
                                                                                    "value": "_factory"
                                                                                },
                                                                                "id": 3875,
                                                                                "name": "Identifier",
                                                                                "src": "3872:8:15"
                                                                            }
                                                                        ],
                                                                        "id": 3876,
                                                                        "name": "MemberAccess",
                                                                        "src": "3872:25:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3843,
                                                                            "type": "bytes32",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 3877,
                                                                        "name": "Identifier",
                                                                        "src": "3898:8:15"
                                                                    }
                                                                ],
                                                                "id": 3878,
                                                                "name": "FunctionCall",
                                                                "src": "3872:35:15"
                                                            }
                                                        ],
                                                        "id": 3879,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "3856:51:15"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3864,
                                                                            "type": "bool",
                                                                            "value": "status"
                                                                        },
                                                                        "id": 3880,
                                                                        "name": "Identifier",
                                                                        "src": "3922:6:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "bool",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address_payable",
                                                                                            "typeString": "address payable"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_address_payable",
                                                                                            "typeString": "address payable"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "transferFrom",
                                                                                    "referencedDeclaration": 392,
                                                                                    "type": "function (address,address,uint256) external returns (bool)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "contract IERC20",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 409,
                                                                                                    "type": "type(contract IERC20)",
                                                                                                    "value": "IERC20"
                                                                                                },
                                                                                                "id": 3881,
                                                                                                "name": "Identifier",
                                                                                                "src": "3931:6:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3874,
                                                                                                    "type": "address",
                                                                                                    "value": "token"
                                                                                                },
                                                                                                "id": 3882,
                                                                                                "name": "Identifier",
                                                                                                "src": "3938:5:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 3883,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "3931:13:15"
                                                                                    }
                                                                                ],
                                                                                "id": 3884,
                                                                                "name": "MemberAccess",
                                                                                "src": "3931:26:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "sender",
                                                                                    "referencedDeclaration": null,
                                                                                    "type": "address payable"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 13007,
                                                                                            "type": "msg",
                                                                                            "value": "msg"
                                                                                        },
                                                                                        "id": 3885,
                                                                                        "name": "Identifier",
                                                                                        "src": "3958:3:15"
                                                                                    }
                                                                                ],
                                                                                "id": 3886,
                                                                                "name": "MemberAccess",
                                                                                "src": "3958:10:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "address payable",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                                    "typeString": "contract Cash"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "type": "type(address)",
                                                                                            "value": "address"
                                                                                        },
                                                                                        "id": 3887,
                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                        "src": "3970:7:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 13077,
                                                                                            "type": "contract Cash",
                                                                                            "value": "this"
                                                                                        },
                                                                                        "id": 3888,
                                                                                        "name": "Identifier",
                                                                                        "src": "3978:4:15"
                                                                                    }
                                                                                ],
                                                                                "id": 3889,
                                                                                "name": "FunctionCall",
                                                                                "src": "3970:13:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3839,
                                                                                    "type": "uint256",
                                                                                    "value": "amount"
                                                                                },
                                                                                "id": 3890,
                                                                                "name": "Identifier",
                                                                                "src": "3985:6:15"
                                                                            }
                                                                        ],
                                                                        "id": 3891,
                                                                        "name": "FunctionCall",
                                                                        "src": "3931:61:15"
                                                                    }
                                                                ],
                                                                "id": 3892,
                                                                "name": "Assignment",
                                                                "src": "3922:70:15"
                                                            }
                                                        ],
                                                        "id": 3893,
                                                        "name": "ExpressionStatement",
                                                        "src": "3922:70:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                3895
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "name": "scalingFactor",
                                                                    "scope": 3912,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "uint256",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "uint256",
                                                                            "type": "uint256"
                                                                        },
                                                                        "id": 3894,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "4007:7:15"
                                                                    }
                                                                ],
                                                                "id": 3895,
                                                                "name": "VariableDeclaration",
                                                                "src": "4007:21:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_contract$_IERC20_$409",
                                                                                    "typeString": "contract IERC20"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5701,
                                                                            "type": "function (contract IERC20) view returns (uint256)",
                                                                            "value": "_computeScalingFactor"
                                                                        },
                                                                        "id": 3896,
                                                                        "name": "Identifier",
                                                                        "src": "4031:21:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "contract IERC20",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 409,
                                                                                    "type": "type(contract IERC20)",
                                                                                    "value": "IERC20"
                                                                                },
                                                                                "id": 3897,
                                                                                "name": "Identifier",
                                                                                "src": "4053:6:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "address",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "getCurrencyToken",
                                                                                            "referencedDeclaration": 8401,
                                                                                            "type": "function (bytes32) view external returns (address)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3633,
                                                                                                    "type": "contract ViaFactory",
                                                                                                    "value": "_factory"
                                                                                                },
                                                                                                "id": 3898,
                                                                                                "name": "Identifier",
                                                                                                "src": "4060:8:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 3899,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "4060:25:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3843,
                                                                                            "type": "bytes32",
                                                                                            "value": "currency"
                                                                                        },
                                                                                        "id": 3900,
                                                                                        "name": "Identifier",
                                                                                        "src": "4086:8:15"
                                                                                    }
                                                                                ],
                                                                                "id": 3901,
                                                                                "name": "FunctionCall",
                                                                                "src": "4060:35:15"
                                                                            }
                                                                        ],
                                                                        "id": 3902,
                                                                        "name": "FunctionCall",
                                                                        "src": "4053:43:15"
                                                                    }
                                                                ],
                                                                "id": 3903,
                                                                "name": "FunctionCall",
                                                                "src": "4031:66:15"
                                                            }
                                                        ],
                                                        "id": 3904,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "4007:90:15"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3839,
                                                                            "type": "uint256",
                                                                            "value": "amount"
                                                                        },
                                                                        "id": 3905,
                                                                        "name": "Identifier",
                                                                        "src": "4112:6:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5717,
                                                                                    "type": "function (uint256,uint256) pure returns (uint256)",
                                                                                    "value": "_upscale"
                                                                                },
                                                                                "id": 3906,
                                                                                "name": "Identifier",
                                                                                "src": "4121:8:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3839,
                                                                                    "type": "uint256",
                                                                                    "value": "amount"
                                                                                },
                                                                                "id": 3907,
                                                                                "name": "Identifier",
                                                                                "src": "4130:6:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3895,
                                                                                    "type": "uint256",
                                                                                    "value": "scalingFactor"
                                                                                },
                                                                                "id": 3908,
                                                                                "name": "Identifier",
                                                                                "src": "4138:13:15"
                                                                            }
                                                                        ],
                                                                        "id": 3909,
                                                                        "name": "FunctionCall",
                                                                        "src": "4121:31:15"
                                                                    }
                                                                ],
                                                                "id": 3910,
                                                                "name": "Assignment",
                                                                "src": "4112:40:15"
                                                            }
                                                        ],
                                                        "id": 3911,
                                                        "name": "ExpressionStatement",
                                                        "src": "4112:40:15"
                                                    }
                                                ],
                                                "id": 3912,
                                                "name": "Block",
                                                "src": "3741:423:15"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                3914
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "name": "cashToken",
                                                                    "scope": 3948,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "address",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address",
                                                                            "stateMutability": "nonpayable",
                                                                            "type": "address"
                                                                        },
                                                                        "id": 3913,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "4194:7:15"
                                                                    }
                                                                ],
                                                                "id": 3914,
                                                                "name": "VariableDeclaration",
                                                                "src": "4194:17:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "address",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                    "typeString": "literal_string \"ViaCash\""
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "getTokenByNameType",
                                                                            "referencedDeclaration": 8276,
                                                                            "type": "function (bytes32,bytes32) view external returns (address)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3633,
                                                                                    "type": "contract ViaFactory",
                                                                                    "value": "_factory"
                                                                                },
                                                                                "id": 3915,
                                                                                "name": "Identifier",
                                                                                "src": "4214:8:15"
                                                                            }
                                                                        ],
                                                                        "id": 3916,
                                                                        "name": "MemberAccess",
                                                                        "src": "4214:27:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3843,
                                                                            "type": "bytes32",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 3917,
                                                                        "name": "Identifier",
                                                                        "src": "4242:8:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "56696143617368",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"ViaCash\"",
                                                                            "value": "ViaCash"
                                                                        },
                                                                        "id": 3918,
                                                                        "name": "Literal",
                                                                        "src": "4251:9:15"
                                                                    }
                                                                ],
                                                                "id": 3919,
                                                                "name": "FunctionCall",
                                                                "src": "4214:47:15"
                                                            }
                                                        ],
                                                        "id": 3920,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "4194:67:15"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "!=",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3914,
                                                                            "type": "address",
                                                                            "value": "cashToken"
                                                                        },
                                                                        "id": 3921,
                                                                        "name": "Identifier",
                                                                        "src": "4374:9:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "address payable",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                            "typeString": "contract Cash"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address)",
                                                                                    "value": "address"
                                                                                },
                                                                                "id": 3922,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "4385:7:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 13077,
                                                                                    "type": "contract Cash",
                                                                                    "value": "this"
                                                                                },
                                                                                "id": 3923,
                                                                                "name": "Identifier",
                                                                                "src": "4393:4:15"
                                                                            }
                                                                        ],
                                                                        "id": 3924,
                                                                        "name": "FunctionCall",
                                                                        "src": "4385:13:15"
                                                                    }
                                                                ],
                                                                "id": 3925,
                                                                "name": "BinaryOperation",
                                                                "src": "4374:24:15"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "=",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3864,
                                                                                    "type": "bool",
                                                                                    "value": "status"
                                                                                },
                                                                                "id": 3926,
                                                                                "name": "Identifier",
                                                                                "src": "4417:6:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "bool",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "requestAddToBalance",
                                                                                            "referencedDeclaration": 4255,
                                                                                            "type": "function (uint256,address) external returns (bool)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "contract Cash",
                                                                                                    "type_conversion": true
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_address_payable",
                                                                                                                    "typeString": "address payable"
                                                                                                                }
                                                                                                            ],
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5750,
                                                                                                            "type": "type(contract Cash)",
                                                                                                            "value": "Cash"
                                                                                                        },
                                                                                                        "id": 3927,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "4426:4:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "address payable",
                                                                                                            "type_conversion": true
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint160",
                                                                                                                            "typeString": "uint160"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "type(address)",
                                                                                                                    "value": "address"
                                                                                                                },
                                                                                                                "id": 3928,
                                                                                                                "name": "ElementaryTypeNameExpression",
                                                                                                                "src": "4431:7:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "isStructConstructorCall": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "type": "uint160",
                                                                                                                    "type_conversion": true
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                    "typeString": "address"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": true,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "type(uint160)",
                                                                                                                            "value": "uint160"
                                                                                                                        },
                                                                                                                        "id": 3929,
                                                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                                                        "src": "4439:7:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 3914,
                                                                                                                            "type": "address",
                                                                                                                            "value": "cashToken"
                                                                                                                        },
                                                                                                                        "id": 3930,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "4447:9:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 3931,
                                                                                                                "name": "FunctionCall",
                                                                                                                "src": "4439:18:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 3932,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "4431:27:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 3933,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "4426:33:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 3934,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "4426:53:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3839,
                                                                                            "type": "uint256",
                                                                                            "value": "amount"
                                                                                        },
                                                                                        "id": 3935,
                                                                                        "name": "Identifier",
                                                                                        "src": "4480:6:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3841,
                                                                                            "type": "address",
                                                                                            "value": "buyer"
                                                                                        },
                                                                                        "id": 3936,
                                                                                        "name": "Identifier",
                                                                                        "src": "4488:5:15"
                                                                                    }
                                                                                ],
                                                                                "id": 3937,
                                                                                "name": "FunctionCall",
                                                                                "src": "4426:68:15"
                                                                            }
                                                                        ],
                                                                        "id": 3938,
                                                                        "name": "Assignment",
                                                                        "src": "4417:77:15"
                                                                    }
                                                                ],
                                                                "id": 3939,
                                                                "name": "ExpressionStatement",
                                                                "src": "4417:77:15"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "=",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3864,
                                                                                    "type": "bool",
                                                                                    "value": "status"
                                                                                },
                                                                                "id": 3940,
                                                                                "name": "Identifier",
                                                                                "src": "4531:6:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "bool",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4284,
                                                                                            "type": "function (uint256,address) returns (bool)",
                                                                                            "value": "addToBalance"
                                                                                        },
                                                                                        "id": 3941,
                                                                                        "name": "Identifier",
                                                                                        "src": "4540:12:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3839,
                                                                                            "type": "uint256",
                                                                                            "value": "amount"
                                                                                        },
                                                                                        "id": 3942,
                                                                                        "name": "Identifier",
                                                                                        "src": "4553:6:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3841,
                                                                                            "type": "address",
                                                                                            "value": "buyer"
                                                                                        },
                                                                                        "id": 3943,
                                                                                        "name": "Identifier",
                                                                                        "src": "4561:5:15"
                                                                                    }
                                                                                ],
                                                                                "id": 3944,
                                                                                "name": "FunctionCall",
                                                                                "src": "4540:27:15"
                                                                            }
                                                                        ],
                                                                        "id": 3945,
                                                                        "name": "Assignment",
                                                                        "src": "4531:36:15"
                                                                    }
                                                                ],
                                                                "id": 3946,
                                                                "name": "ExpressionStatement",
                                                                "src": "4531:36:15"
                                                            }
                                                        ],
                                                        "id": 3947,
                                                        "name": "IfStatement",
                                                        "src": "4371:196:15"
                                                    }
                                                ],
                                                "id": 3948,
                                                "name": "Block",
                                                "src": "4179:400:15"
                                            }
                                        ],
                                        "id": 3949,
                                        "name": "IfStatement",
                                        "src": "3692:887:15"
                                    },
                                    {
                                        "attributes": {
                                            "falseBody": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 3864,
                                                    "type": "bool",
                                                    "value": "status"
                                                },
                                                "id": 3950,
                                                "name": "Identifier",
                                                "src": "4592:6:15"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "falseBody": null
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3653,
                                                                                    "type": "mapping(bytes32 => uint256)",
                                                                                    "value": "currencyIndex"
                                                                                },
                                                                                "id": 3951,
                                                                                "name": "Identifier",
                                                                                "src": "4668:13:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3843,
                                                                                    "type": "bytes32",
                                                                                    "value": "currency"
                                                                                },
                                                                                "id": 3952,
                                                                                "name": "Identifier",
                                                                                "src": "4682:8:15"
                                                                            }
                                                                        ],
                                                                        "id": 3953,
                                                                        "name": "IndexAccess",
                                                                        "src": "4668:23:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "30",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "number",
                                                                            "type": "int_const 0",
                                                                            "value": "0"
                                                                        },
                                                                        "id": 3954,
                                                                        "name": "Literal",
                                                                        "src": "4693:1:15"
                                                                    }
                                                                ],
                                                                "id": 3955,
                                                                "name": "BinaryOperation",
                                                                "src": "4668:26:15"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "push",
                                                                                            "referencedDeclaration": null,
                                                                                            "type": "function (bytes32) returns (uint256)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3649,
                                                                                                    "type": "bytes32[] storage ref",
                                                                                                    "value": "currencies"
                                                                                                },
                                                                                                "id": 3956,
                                                                                                "name": "Identifier",
                                                                                                "src": "4714:10:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 3958,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "4714:15:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3843,
                                                                                            "type": "bytes32",
                                                                                            "value": "currency"
                                                                                        },
                                                                                        "id": 3959,
                                                                                        "name": "Identifier",
                                                                                        "src": "4730:8:15"
                                                                                    }
                                                                                ],
                                                                                "id": 3960,
                                                                                "name": "FunctionCall",
                                                                                "src": "4714:25:15"
                                                                            }
                                                                        ],
                                                                        "id": 3961,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "4714:25:15"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": true,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3653,
                                                                                                    "type": "mapping(bytes32 => uint256)",
                                                                                                    "value": "currencyIndex"
                                                                                                },
                                                                                                "id": 3962,
                                                                                                "name": "Identifier",
                                                                                                "src": "4758:13:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3843,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "currency"
                                                                                                },
                                                                                                "id": 3963,
                                                                                                "name": "Identifier",
                                                                                                "src": "4772:8:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 3964,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "4758:23:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "length",
                                                                                            "referencedDeclaration": null,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3649,
                                                                                                    "type": "bytes32[] storage ref",
                                                                                                    "value": "currencies"
                                                                                                },
                                                                                                "id": 3965,
                                                                                                "name": "Identifier",
                                                                                                "src": "4784:10:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 3966,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "4784:17:15"
                                                                                    }
                                                                                ],
                                                                                "id": 3967,
                                                                                "name": "Assignment",
                                                                                "src": "4758:43:15"
                                                                            }
                                                                        ],
                                                                        "id": 3968,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "4758:43:15"
                                                                    }
                                                                ],
                                                                "id": 3969,
                                                                "name": "Block",
                                                                "src": "4695:122:15"
                                                            }
                                                        ],
                                                        "id": 3970,
                                                        "name": "IfStatement",
                                                        "src": "4665:152:15"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4094,
                                                                            "type": "function (uint256,address,bytes32)",
                                                                            "value": "makeDeposit"
                                                                        },
                                                                        "id": 3971,
                                                                        "name": "Identifier",
                                                                        "src": "4831:11:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3839,
                                                                            "type": "uint256",
                                                                            "value": "amount"
                                                                        },
                                                                        "id": 3972,
                                                                        "name": "Identifier",
                                                                        "src": "4843:6:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3841,
                                                                            "type": "address",
                                                                            "value": "buyer"
                                                                        },
                                                                        "id": 3973,
                                                                        "name": "Identifier",
                                                                        "src": "4851:5:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3843,
                                                                            "type": "bytes32",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 3974,
                                                                        "name": "Identifier",
                                                                        "src": "4858:8:15"
                                                                    }
                                                                ],
                                                                "id": 3975,
                                                                "name": "FunctionCall",
                                                                "src": "4831:36:15"
                                                            }
                                                        ],
                                                        "id": 3976,
                                                        "name": "ExpressionStatement",
                                                        "src": "4831:36:15"
                                                    }
                                                ],
                                                "id": 3977,
                                                "name": "Block",
                                                "src": "4599:280:15"
                                            }
                                        ],
                                        "id": 3978,
                                        "name": "IfStatement",
                                        "src": "4589:290:15"
                                    }
                                ],
                                "id": 3979,
                                "name": "Block",
                                "src": "3542:1344:15"
                            }
                        ],
                        "id": 3980,
                        "name": "FunctionDefinition",
                        "src": "3464:1422:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "makeDeposit",
                            "scope": 5750,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 4094,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3981,
                                                "name": "ElementaryTypeName",
                                                "src": "5049:7:15"
                                            }
                                        ],
                                        "id": 3982,
                                        "name": "VariableDeclaration",
                                        "src": "5049:14:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "buyer",
                                            "scope": 4094,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3983,
                                                "name": "ElementaryTypeName",
                                                "src": "5065:7:15"
                                            }
                                        ],
                                        "id": 3984,
                                        "name": "VariableDeclaration",
                                        "src": "5065:13:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "currency",
                                            "scope": 4094,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 3985,
                                                "name": "ElementaryTypeName",
                                                "src": "5080:7:15"
                                            }
                                        ],
                                        "id": 3986,
                                        "name": "VariableDeclaration",
                                        "src": "5080:16:15"
                                    }
                                ],
                                "id": 3987,
                                "name": "ParameterList",
                                "src": "5048:49:15"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 3988,
                                "name": "ParameterList",
                                "src": "5106:0:15"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 3989,
                                                        "name": "Identifier",
                                                        "src": "5167:7:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "!=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3982,
                                                                    "type": "uint256",
                                                                    "value": "amount"
                                                                },
                                                                "id": 3990,
                                                                "name": "Identifier",
                                                                "src": "5175:6:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 3991,
                                                                "name": "Literal",
                                                                "src": "5185:1:15"
                                                            }
                                                        ],
                                                        "id": 3992,
                                                        "name": "BinaryOperation",
                                                        "src": "5175:11:15"
                                                    }
                                                ],
                                                "id": 3993,
                                                "name": "FunctionCall",
                                                "src": "5167:20:15"
                                            }
                                        ],
                                        "id": 3994,
                                        "name": "ExpressionStatement",
                                        "src": "5167:20:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_c70fc913b29d522b0cf5d7bf60f3b229f68995be5ff512bc2cfa283fb024f964",
                                                                    "typeString": "literal_string \"Lock on deposits\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13011,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 3995,
                                                        "name": "Identifier",
                                                        "src": "5198:7:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "!",
                                                            "prefix": true,
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3711,
                                                                            "type": "mapping(bytes32 => bool)",
                                                                            "value": "_lock"
                                                                        },
                                                                        "id": 3996,
                                                                        "name": "Identifier",
                                                                        "src": "5207:5:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "72656365697074",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"receipt\"",
                                                                            "value": "receipt"
                                                                        },
                                                                        "id": 3997,
                                                                        "name": "Literal",
                                                                        "src": "5213:9:15"
                                                                    }
                                                                ],
                                                                "id": 3998,
                                                                "name": "IndexAccess",
                                                                "src": "5207:16:15"
                                                            }
                                                        ],
                                                        "id": 3999,
                                                        "name": "UnaryOperation",
                                                        "src": "5206:17:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "4c6f636b206f6e206465706f73697473",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Lock on deposits\"",
                                                            "value": "Lock on deposits"
                                                        },
                                                        "id": 4000,
                                                        "name": "Literal",
                                                        "src": "5225:18:15"
                                                    }
                                                ],
                                                "id": 4001,
                                                "name": "FunctionCall",
                                                "src": "5198:46:15"
                                            }
                                        ],
                                        "id": 4002,
                                        "name": "ExpressionStatement",
                                        "src": "5198:46:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3711,
                                                                    "type": "mapping(bytes32 => bool)",
                                                                    "value": "_lock"
                                                                },
                                                                "id": 4003,
                                                                "name": "Identifier",
                                                                "src": "5255:5:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "72656365697074",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "string",
                                                                    "type": "literal_string \"receipt\"",
                                                                    "value": "receipt"
                                                                },
                                                                "id": 4004,
                                                                "name": "Literal",
                                                                "src": "5261:9:15"
                                                            }
                                                        ],
                                                        "id": 4005,
                                                        "name": "IndexAccess",
                                                        "src": "5255:16:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "74727565",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "true"
                                                        },
                                                        "id": 4006,
                                                        "name": "Literal",
                                                        "src": "5274:4:15"
                                                    }
                                                ],
                                                "id": 4007,
                                                "name": "Assignment",
                                                "src": "5255:23:15"
                                            }
                                        ],
                                        "id": 4008,
                                        "name": "ExpressionStatement",
                                        "src": "5255:23:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "member_name": "depositAmount",
                                                            "referencedDeclaration": 3641,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct Cash.deposit storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3659,
                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                    "value": "_deposits"
                                                                                },
                                                                                "id": 4009,
                                                                                "name": "Identifier",
                                                                                "src": "5289:9:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3984,
                                                                                    "type": "address",
                                                                                    "value": "buyer"
                                                                                },
                                                                                "id": 4010,
                                                                                "name": "Identifier",
                                                                                "src": "5299:5:15"
                                                                            }
                                                                        ],
                                                                        "id": 4012,
                                                                        "name": "IndexAccess",
                                                                        "src": "5289:16:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3986,
                                                                            "type": "bytes32",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 4011,
                                                                        "name": "Identifier",
                                                                        "src": "5306:8:15"
                                                                    }
                                                                ],
                                                                "id": 4013,
                                                                "name": "IndexAccess",
                                                                "src": "5289:26:15"
                                                            }
                                                        ],
                                                        "id": 4014,
                                                        "name": "MemberAccess",
                                                        "src": "5289:40:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "add",
                                                                    "referencedDeclaration": 10236,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10483,
                                                                            "type": "type(library Math)",
                                                                            "value": "Math"
                                                                        },
                                                                        "id": 4015,
                                                                        "name": "Identifier",
                                                                        "src": "5332:4:15"
                                                                    }
                                                                ],
                                                                "id": 4016,
                                                                "name": "MemberAccess",
                                                                "src": "5332:8:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "depositAmount",
                                                                    "referencedDeclaration": 3641,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct Cash.deposit storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3659,
                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                            "value": "_deposits"
                                                                                        },
                                                                                        "id": 4017,
                                                                                        "name": "Identifier",
                                                                                        "src": "5341:9:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3984,
                                                                                            "type": "address",
                                                                                            "value": "buyer"
                                                                                        },
                                                                                        "id": 4018,
                                                                                        "name": "Identifier",
                                                                                        "src": "5351:5:15"
                                                                                    }
                                                                                ],
                                                                                "id": 4019,
                                                                                "name": "IndexAccess",
                                                                                "src": "5341:16:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3986,
                                                                                    "type": "bytes32",
                                                                                    "value": "currency"
                                                                                },
                                                                                "id": 4020,
                                                                                "name": "Identifier",
                                                                                "src": "5358:8:15"
                                                                            }
                                                                        ],
                                                                        "id": 4021,
                                                                        "name": "IndexAccess",
                                                                        "src": "5341:26:15"
                                                                    }
                                                                ],
                                                                "id": 4022,
                                                                "name": "MemberAccess",
                                                                "src": "5341:40:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3982,
                                                                    "type": "uint256",
                                                                    "value": "amount"
                                                                },
                                                                "id": 4023,
                                                                "name": "Identifier",
                                                                "src": "5383:6:15"
                                                            }
                                                        ],
                                                        "id": 4024,
                                                        "name": "FunctionCall",
                                                        "src": "5332:58:15"
                                                    }
                                                ],
                                                "id": 4025,
                                                "name": "Assignment",
                                                "src": "5289:101:15"
                                            }
                                        ],
                                        "id": 4026,
                                        "name": "ExpressionStatement",
                                        "src": "5289:101:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "member_name": "depositor",
                                                            "referencedDeclaration": 3645,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct Cash.deposit storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3659,
                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                    "value": "_deposits"
                                                                                },
                                                                                "id": 4027,
                                                                                "name": "Identifier",
                                                                                "src": "5401:9:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3984,
                                                                                    "type": "address",
                                                                                    "value": "buyer"
                                                                                },
                                                                                "id": 4028,
                                                                                "name": "Identifier",
                                                                                "src": "5411:5:15"
                                                                            }
                                                                        ],
                                                                        "id": 4030,
                                                                        "name": "IndexAccess",
                                                                        "src": "5401:16:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3986,
                                                                            "type": "bytes32",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 4029,
                                                                        "name": "Identifier",
                                                                        "src": "5418:8:15"
                                                                    }
                                                                ],
                                                                "id": 4031,
                                                                "name": "IndexAccess",
                                                                "src": "5401:26:15"
                                                            }
                                                        ],
                                                        "id": 4032,
                                                        "name": "MemberAccess",
                                                        "src": "5401:36:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3984,
                                                            "type": "address",
                                                            "value": "buyer"
                                                        },
                                                        "id": 4033,
                                                        "name": "Identifier",
                                                        "src": "5440:5:15"
                                                    }
                                                ],
                                                "id": 4034,
                                                "name": "Assignment",
                                                "src": "5401:44:15"
                                            }
                                        ],
                                        "id": 4035,
                                        "name": "ExpressionStatement",
                                        "src": "5401:44:15"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                4037
                                            ],
                                            "initialValue": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "rate",
                                                    "scope": 4093,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 4036,
                                                        "name": "ElementaryTypeName",
                                                        "src": "5520:7:15"
                                                    }
                                                ],
                                                "id": 4037,
                                                "name": "VariableDeclaration",
                                                "src": "5520:12:15"
                                            }
                                        ],
                                        "id": 4038,
                                        "name": "VariableDeclarationStatement",
                                        "src": "5520:12:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "!=",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "address",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                            "typeString": "literal_string \"ViaCash\""
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "getTokenByNameType",
                                                                    "referencedDeclaration": 8276,
                                                                    "type": "function (bytes32,bytes32) view external returns (address)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3633,
                                                                            "type": "contract ViaFactory",
                                                                            "value": "_factory"
                                                                        },
                                                                        "id": 4039,
                                                                        "name": "Identifier",
                                                                        "src": "5546:8:15"
                                                                    }
                                                                ],
                                                                "id": 4040,
                                                                "name": "MemberAccess",
                                                                "src": "5546:27:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3986,
                                                                    "type": "bytes32",
                                                                    "value": "currency"
                                                                },
                                                                "id": 4041,
                                                                "name": "Identifier",
                                                                "src": "5574:8:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "56696143617368",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "string",
                                                                    "type": "literal_string \"ViaCash\"",
                                                                    "value": "ViaCash"
                                                                },
                                                                "id": 4042,
                                                                "name": "Literal",
                                                                "src": "5584:9:15"
                                                            }
                                                        ],
                                                        "id": 4043,
                                                        "name": "FunctionCall",
                                                        "src": "5546:48:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "address payable",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                            "typeString": "int_const 0"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)",
                                                                    "value": "address"
                                                                },
                                                                "id": 4044,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "5596:7:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "307830",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0x0"
                                                                },
                                                                "id": 4045,
                                                                "name": "Literal",
                                                                "src": "5604:3:15"
                                                            }
                                                        ],
                                                        "id": 4046,
                                                        "name": "FunctionCall",
                                                        "src": "5596:12:15"
                                                    }
                                                ],
                                                "id": 4047,
                                                "name": "BinaryOperation",
                                                "src": "5546:62:15"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "=",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4037,
                                                                    "type": "uint256",
                                                                    "value": "rate"
                                                                },
                                                                "id": 4048,
                                                                "name": "Identifier",
                                                                "src": "5685:4:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_stringliteral_2a30ae68ef41453c4785709d2ce90b5b4f47543810125db1fedbf78bdfa6a766",
                                                                                    "typeString": "literal_string \"ver\""
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "request",
                                                                            "referencedDeclaration": 8415,
                                                                            "type": "function (bytes32,bytes32,bytes32) external returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3637,
                                                                                    "type": "contract ViaOracle",
                                                                                    "value": "_oracle"
                                                                                },
                                                                                "id": 4049,
                                                                                "name": "Identifier",
                                                                                "src": "5692:7:15"
                                                                            }
                                                                        ],
                                                                        "id": 4050,
                                                                        "name": "MemberAccess",
                                                                        "src": "5692:15:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3986,
                                                                            "type": "bytes32",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 4051,
                                                                        "name": "Identifier",
                                                                        "src": "5708:8:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3639,
                                                                            "type": "bytes32",
                                                                            "value": "_cashtokenName"
                                                                        },
                                                                        "id": 4052,
                                                                        "name": "Identifier",
                                                                        "src": "5718:14:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "766572",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"ver\"",
                                                                            "value": "ver"
                                                                        },
                                                                        "id": 4053,
                                                                        "name": "Literal",
                                                                        "src": "5734:5:15"
                                                                    }
                                                                ],
                                                                "id": 4054,
                                                                "name": "FunctionCall",
                                                                "src": "5692:48:15"
                                                            }
                                                        ],
                                                        "id": 4055,
                                                        "name": "Assignment",
                                                        "src": "5685:55:15"
                                                    }
                                                ],
                                                "id": 4056,
                                                "name": "ExpressionStatement",
                                                "src": "5685:55:15"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "=",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4037,
                                                                    "type": "uint256",
                                                                    "value": "rate"
                                                                },
                                                                "id": 4057,
                                                                "name": "Identifier",
                                                                "src": "5911:4:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_stringliteral_8d59d30b2e0636060cbadd07e789f8a1580adc30d4dc8bc4ff048650ee7844f3",
                                                                                    "typeString": "literal_string \"er\""
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "request",
                                                                            "referencedDeclaration": 8415,
                                                                            "type": "function (bytes32,bytes32,bytes32) external returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3637,
                                                                                    "type": "contract ViaOracle",
                                                                                    "value": "_oracle"
                                                                                },
                                                                                "id": 4058,
                                                                                "name": "Identifier",
                                                                                "src": "5918:7:15"
                                                                            }
                                                                        ],
                                                                        "id": 4059,
                                                                        "name": "MemberAccess",
                                                                        "src": "5918:15:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3986,
                                                                            "type": "bytes32",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 4060,
                                                                        "name": "Identifier",
                                                                        "src": "5934:8:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "bytes32",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_rational_2_by_1",
                                                                                            "typeString": "int_const 2"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_rational_5_by_1",
                                                                                            "typeString": "int_const 5"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "substringinbytes",
                                                                                    "referencedDeclaration": 12782,
                                                                                    "type": "function (bytes32,uint256,uint256) pure returns (bytes32)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3639,
                                                                                            "type": "bytes32",
                                                                                            "value": "_cashtokenName"
                                                                                        },
                                                                                        "id": 4061,
                                                                                        "name": "Identifier",
                                                                                        "src": "5944:14:15"
                                                                                    }
                                                                                ],
                                                                                "id": 4062,
                                                                                "name": "MemberAccess",
                                                                                "src": "5944:31:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "32",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "number",
                                                                                    "type": "int_const 2",
                                                                                    "value": "2"
                                                                                },
                                                                                "id": 4063,
                                                                                "name": "Literal",
                                                                                "src": "5976:1:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "35",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "number",
                                                                                    "type": "int_const 5",
                                                                                    "value": "5"
                                                                                },
                                                                                "id": 4064,
                                                                                "name": "Literal",
                                                                                "src": "5978:1:15"
                                                                            }
                                                                        ],
                                                                        "id": 4065,
                                                                        "name": "FunctionCall",
                                                                        "src": "5944:36:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "6572",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"er\"",
                                                                            "value": "er"
                                                                        },
                                                                        "id": 4066,
                                                                        "name": "Literal",
                                                                        "src": "5982:4:15"
                                                                    }
                                                                ],
                                                                "id": 4067,
                                                                "name": "FunctionCall",
                                                                "src": "5918:69:15"
                                                            }
                                                        ],
                                                        "id": 4068,
                                                        "name": "Assignment",
                                                        "src": "5911:76:15"
                                                    }
                                                ],
                                                "id": 4069,
                                                "name": "ExpressionStatement",
                                                "src": "5911:76:15"
                                            }
                                        ],
                                        "id": 4070,
                                        "name": "IfStatement",
                                        "src": "5543:444:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3695,
                                                            "type": "function (address,bytes32,uint256)",
                                                            "value": "CashDeposits"
                                                        },
                                                        "id": 4071,
                                                        "name": "Identifier",
                                                        "src": "6003:12:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3984,
                                                            "type": "address",
                                                            "value": "buyer"
                                                        },
                                                        "id": 4072,
                                                        "name": "Identifier",
                                                        "src": "6016:5:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3986,
                                                            "type": "bytes32",
                                                            "value": "currency"
                                                        },
                                                        "id": 4073,
                                                        "name": "Identifier",
                                                        "src": "6023:8:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3982,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 4074,
                                                        "name": "Identifier",
                                                        "src": "6033:6:15"
                                                    }
                                                ],
                                                "id": 4075,
                                                "name": "FunctionCall",
                                                "src": "6003:37:15"
                                            }
                                        ],
                                        "id": 4076,
                                        "name": "EmitStatement",
                                        "src": "5998:42:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4222,
                                                            "type": "function (address,bytes32,uint256)",
                                                            "value": "issue"
                                                        },
                                                        "id": 4077,
                                                        "name": "Identifier",
                                                        "src": "6051:5:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3984,
                                                            "type": "address",
                                                            "value": "buyer"
                                                        },
                                                        "id": 4078,
                                                        "name": "Identifier",
                                                        "src": "6057:5:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3986,
                                                            "type": "bytes32",
                                                            "value": "currency"
                                                        },
                                                        "id": 4079,
                                                        "name": "Identifier",
                                                        "src": "6064:8:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "mulDown",
                                                                    "referencedDeclaration": 8604,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8909,
                                                                            "type": "type(library FixedPoint)",
                                                                            "value": "FixedPoint"
                                                                        },
                                                                        "id": 4080,
                                                                        "name": "Identifier",
                                                                        "src": "6074:10:15"
                                                                    }
                                                                ],
                                                                "id": 4081,
                                                                "name": "MemberAccess",
                                                                "src": "6074:18:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4037,
                                                                    "type": "uint256",
                                                                    "value": "rate"
                                                                },
                                                                "id": 4082,
                                                                "name": "Identifier",
                                                                "src": "6093:4:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3982,
                                                                    "type": "uint256",
                                                                    "value": "amount"
                                                                },
                                                                "id": 4083,
                                                                "name": "Identifier",
                                                                "src": "6099:6:15"
                                                            }
                                                        ],
                                                        "id": 4084,
                                                        "name": "FunctionCall",
                                                        "src": "6074:32:15"
                                                    }
                                                ],
                                                "id": 4085,
                                                "name": "FunctionCall",
                                                "src": "6051:56:15"
                                            }
                                        ],
                                        "id": 4086,
                                        "name": "ExpressionStatement",
                                        "src": "6051:56:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3711,
                                                                    "type": "mapping(bytes32 => bool)",
                                                                    "value": "_lock"
                                                                },
                                                                "id": 4087,
                                                                "name": "Identifier",
                                                                "src": "6118:5:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "72656365697074",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "string",
                                                                    "type": "literal_string \"receipt\"",
                                                                    "value": "receipt"
                                                                },
                                                                "id": 4088,
                                                                "name": "Literal",
                                                                "src": "6124:9:15"
                                                            }
                                                        ],
                                                        "id": 4089,
                                                        "name": "IndexAccess",
                                                        "src": "6118:16:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "66616c7365",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "false"
                                                        },
                                                        "id": 4090,
                                                        "name": "Literal",
                                                        "src": "6137:5:15"
                                                    }
                                                ],
                                                "id": 4091,
                                                "name": "Assignment",
                                                "src": "6118:24:15"
                                            }
                                        ],
                                        "id": 4092,
                                        "name": "ExpressionStatement",
                                        "src": "6118:24:15"
                                    }
                                ],
                                "id": 4093,
                                "name": "Block",
                                "src": "5106:1049:15"
                            }
                        ],
                        "id": 4094,
                        "name": "FunctionDefinition",
                        "src": "5028:1127:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "payIn",
                            "scope": 5750,
                            "stateMutability": "nonpayable",
                            "superFunction": 8200,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 4180,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 4095,
                                                "name": "ElementaryTypeName",
                                                "src": "6275:7:15"
                                            }
                                        ],
                                        "id": 4096,
                                        "name": "VariableDeclaration",
                                        "src": "6275:14:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "payer",
                                            "scope": 4180,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4097,
                                                "name": "ElementaryTypeName",
                                                "src": "6291:7:15"
                                            }
                                        ],
                                        "id": 4098,
                                        "name": "VariableDeclaration",
                                        "src": "6291:13:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "currency",
                                            "scope": 4180,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 4099,
                                                "name": "ElementaryTypeName",
                                                "src": "6306:7:15"
                                            }
                                        ],
                                        "id": 4100,
                                        "name": "VariableDeclaration",
                                        "src": "6306:16:15"
                                    }
                                ],
                                "id": 4101,
                                "name": "ParameterList",
                                "src": "6274:49:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 4180,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 4106,
                                                "name": "ElementaryTypeName",
                                                "src": "6367:4:15"
                                            }
                                        ],
                                        "id": 4107,
                                        "name": "VariableDeclaration",
                                        "src": "6367:4:15"
                                    }
                                ],
                                "id": 4108,
                                "name": "ParameterList",
                                "src": "6366:6:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 3665,
                                            "type": "modifier (address)",
                                            "value": "onlyCustodian"
                                        },
                                        "id": 4102,
                                        "name": "Identifier",
                                        "src": "6324:13:15"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "referencedDeclaration": null,
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 13007,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 4103,
                                                "name": "Identifier",
                                                "src": "6338:3:15"
                                            }
                                        ],
                                        "id": 4104,
                                        "name": "MemberAccess",
                                        "src": "6338:10:15"
                                    }
                                ],
                                "id": 4105,
                                "name": "ModifierInvocation",
                                "src": "6324:25:15"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 4109,
                                                        "name": "Identifier",
                                                        "src": "6422:7:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 12542,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 4110,
                                                                "name": "Identifier",
                                                                "src": "6430:6:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 4111,
                                                                "name": "Literal",
                                                                "src": "6440:5:15"
                                                            }
                                                        ],
                                                        "id": 4112,
                                                        "name": "BinaryOperation",
                                                        "src": "6430:15:15"
                                                    }
                                                ],
                                                "id": 4113,
                                                "name": "FunctionCall",
                                                "src": "6422:24:15"
                                            }
                                        ],
                                        "id": 4114,
                                        "name": "ExpressionStatement",
                                        "src": "6422:24:15"
                                    },
                                    {
                                        "attributes": {
                                            "falseBody": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3653,
                                                                    "type": "mapping(bytes32 => uint256)",
                                                                    "value": "currencyIndex"
                                                                },
                                                                "id": 4115,
                                                                "name": "Identifier",
                                                                "src": "6507:13:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4100,
                                                                    "type": "bytes32",
                                                                    "value": "currency"
                                                                },
                                                                "id": 4116,
                                                                "name": "Identifier",
                                                                "src": "6521:8:15"
                                                            }
                                                        ],
                                                        "id": 4117,
                                                        "name": "IndexAccess",
                                                        "src": "6507:23:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 4118,
                                                        "name": "Literal",
                                                        "src": "6532:1:15"
                                                    }
                                                ],
                                                "id": 4119,
                                                "name": "BinaryOperation",
                                                "src": "6507:26:15"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "push",
                                                                            "referencedDeclaration": null,
                                                                            "type": "function (bytes32) returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3649,
                                                                                    "type": "bytes32[] storage ref",
                                                                                    "value": "currencies"
                                                                                },
                                                                                "id": 4120,
                                                                                "name": "Identifier",
                                                                                "src": "6549:10:15"
                                                                            }
                                                                        ],
                                                                        "id": 4122,
                                                                        "name": "MemberAccess",
                                                                        "src": "6549:15:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4100,
                                                                            "type": "bytes32",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 4123,
                                                                        "name": "Identifier",
                                                                        "src": "6565:8:15"
                                                                    }
                                                                ],
                                                                "id": 4124,
                                                                "name": "FunctionCall",
                                                                "src": "6549:25:15"
                                                            }
                                                        ],
                                                        "id": 4125,
                                                        "name": "ExpressionStatement",
                                                        "src": "6549:25:15"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3653,
                                                                                    "type": "mapping(bytes32 => uint256)",
                                                                                    "value": "currencyIndex"
                                                                                },
                                                                                "id": 4126,
                                                                                "name": "Identifier",
                                                                                "src": "6589:13:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4100,
                                                                                    "type": "bytes32",
                                                                                    "value": "currency"
                                                                                },
                                                                                "id": 4127,
                                                                                "name": "Identifier",
                                                                                "src": "6603:8:15"
                                                                            }
                                                                        ],
                                                                        "id": 4128,
                                                                        "name": "IndexAccess",
                                                                        "src": "6589:23:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "length",
                                                                            "referencedDeclaration": null,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3649,
                                                                                    "type": "bytes32[] storage ref",
                                                                                    "value": "currencies"
                                                                                },
                                                                                "id": 4129,
                                                                                "name": "Identifier",
                                                                                "src": "6615:10:15"
                                                                            }
                                                                        ],
                                                                        "id": 4130,
                                                                        "name": "MemberAccess",
                                                                        "src": "6615:17:15"
                                                                    }
                                                                ],
                                                                "id": 4131,
                                                                "name": "Assignment",
                                                                "src": "6589:43:15"
                                                            }
                                                        ],
                                                        "id": 4132,
                                                        "name": "ExpressionStatement",
                                                        "src": "6589:43:15"
                                                    }
                                                ],
                                                "id": 4133,
                                                "name": "Block",
                                                "src": "6534:110:15"
                                            }
                                        ],
                                        "id": 4134,
                                        "name": "IfStatement",
                                        "src": "6504:140:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "member_name": "depositor",
                                                            "referencedDeclaration": 3645,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct Cash.deposit storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3659,
                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                    "value": "_deposits"
                                                                                },
                                                                                "id": 4135,
                                                                                "name": "Identifier",
                                                                                "src": "6654:9:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4098,
                                                                                    "type": "address",
                                                                                    "value": "payer"
                                                                                },
                                                                                "id": 4136,
                                                                                "name": "Identifier",
                                                                                "src": "6664:5:15"
                                                                            }
                                                                        ],
                                                                        "id": 4138,
                                                                        "name": "IndexAccess",
                                                                        "src": "6654:16:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4100,
                                                                            "type": "bytes32",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 4137,
                                                                        "name": "Identifier",
                                                                        "src": "6671:8:15"
                                                                    }
                                                                ],
                                                                "id": 4139,
                                                                "name": "IndexAccess",
                                                                "src": "6654:26:15"
                                                            }
                                                        ],
                                                        "id": 4140,
                                                        "name": "MemberAccess",
                                                        "src": "6654:36:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "sender",
                                                            "referencedDeclaration": null,
                                                            "type": "address payable"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 13007,
                                                                    "type": "msg",
                                                                    "value": "msg"
                                                                },
                                                                "id": 4141,
                                                                "name": "Identifier",
                                                                "src": "6693:3:15"
                                                            }
                                                        ],
                                                        "id": 4142,
                                                        "name": "MemberAccess",
                                                        "src": "6693:10:15"
                                                    }
                                                ],
                                                "id": 4143,
                                                "name": "Assignment",
                                                "src": "6654:49:15"
                                            }
                                        ],
                                        "id": 4144,
                                        "name": "ExpressionStatement",
                                        "src": "6654:49:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "member_name": "depositAmount",
                                                            "referencedDeclaration": 3641,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct Cash.deposit storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3659,
                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                    "value": "_deposits"
                                                                                },
                                                                                "id": 4145,
                                                                                "name": "Identifier",
                                                                                "src": "6714:9:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4098,
                                                                                    "type": "address",
                                                                                    "value": "payer"
                                                                                },
                                                                                "id": 4146,
                                                                                "name": "Identifier",
                                                                                "src": "6724:5:15"
                                                                            }
                                                                        ],
                                                                        "id": 4148,
                                                                        "name": "IndexAccess",
                                                                        "src": "6714:16:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4100,
                                                                            "type": "bytes32",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 4147,
                                                                        "name": "Identifier",
                                                                        "src": "6731:8:15"
                                                                    }
                                                                ],
                                                                "id": 4149,
                                                                "name": "IndexAccess",
                                                                "src": "6714:26:15"
                                                            }
                                                        ],
                                                        "id": 4150,
                                                        "name": "MemberAccess",
                                                        "src": "6714:40:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "add",
                                                                    "referencedDeclaration": 10236,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10483,
                                                                            "type": "type(library Math)",
                                                                            "value": "Math"
                                                                        },
                                                                        "id": 4151,
                                                                        "name": "Identifier",
                                                                        "src": "6757:4:15"
                                                                    }
                                                                ],
                                                                "id": 4152,
                                                                "name": "MemberAccess",
                                                                "src": "6757:8:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "depositAmount",
                                                                    "referencedDeclaration": 3641,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct Cash.deposit storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3659,
                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                            "value": "_deposits"
                                                                                        },
                                                                                        "id": 4153,
                                                                                        "name": "Identifier",
                                                                                        "src": "6766:9:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4098,
                                                                                            "type": "address",
                                                                                            "value": "payer"
                                                                                        },
                                                                                        "id": 4154,
                                                                                        "name": "Identifier",
                                                                                        "src": "6776:5:15"
                                                                                    }
                                                                                ],
                                                                                "id": 4155,
                                                                                "name": "IndexAccess",
                                                                                "src": "6766:16:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4100,
                                                                                    "type": "bytes32",
                                                                                    "value": "currency"
                                                                                },
                                                                                "id": 4156,
                                                                                "name": "Identifier",
                                                                                "src": "6783:8:15"
                                                                            }
                                                                        ],
                                                                        "id": 4157,
                                                                        "name": "IndexAccess",
                                                                        "src": "6766:26:15"
                                                                    }
                                                                ],
                                                                "id": 4158,
                                                                "name": "MemberAccess",
                                                                "src": "6766:40:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4096,
                                                                    "type": "uint256",
                                                                    "value": "amount"
                                                                },
                                                                "id": 4159,
                                                                "name": "Identifier",
                                                                "src": "6808:6:15"
                                                            }
                                                        ],
                                                        "id": 4160,
                                                        "name": "FunctionCall",
                                                        "src": "6757:58:15"
                                                    }
                                                ],
                                                "id": 4161,
                                                "name": "Assignment",
                                                "src": "6714:101:15"
                                            }
                                        ],
                                        "id": 4162,
                                        "name": "ExpressionStatement",
                                        "src": "6714:101:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3695,
                                                            "type": "function (address,bytes32,uint256)",
                                                            "value": "CashDeposits"
                                                        },
                                                        "id": 4163,
                                                        "name": "Identifier",
                                                        "src": "6831:12:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4098,
                                                            "type": "address",
                                                            "value": "payer"
                                                        },
                                                        "id": 4164,
                                                        "name": "Identifier",
                                                        "src": "6844:5:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4100,
                                                            "type": "bytes32",
                                                            "value": "currency"
                                                        },
                                                        "id": 4165,
                                                        "name": "Identifier",
                                                        "src": "6851:8:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4096,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 4166,
                                                        "name": "Identifier",
                                                        "src": "6861:6:15"
                                                    }
                                                ],
                                                "id": 4167,
                                                "name": "FunctionCall",
                                                "src": "6831:37:15"
                                            }
                                        ],
                                        "id": 4168,
                                        "name": "EmitStatement",
                                        "src": "6826:42:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4222,
                                                            "type": "function (address,bytes32,uint256)",
                                                            "value": "issue"
                                                        },
                                                        "id": 4169,
                                                        "name": "Identifier",
                                                        "src": "6965:5:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4098,
                                                            "type": "address",
                                                            "value": "payer"
                                                        },
                                                        "id": 4170,
                                                        "name": "Identifier",
                                                        "src": "6971:5:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4100,
                                                            "type": "bytes32",
                                                            "value": "currency"
                                                        },
                                                        "id": 4171,
                                                        "name": "Identifier",
                                                        "src": "6978:8:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_rational_1000000000000000000_by_1",
                                                                            "typeString": "int_const 1000000000000000000"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "mulDown",
                                                                    "referencedDeclaration": 8604,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8909,
                                                                            "type": "type(library FixedPoint)",
                                                                            "value": "FixedPoint"
                                                                        },
                                                                        "id": 4172,
                                                                        "name": "Identifier",
                                                                        "src": "6988:10:15"
                                                                    }
                                                                ],
                                                                "id": 4173,
                                                                "name": "MemberAccess",
                                                                "src": "6988:18:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4096,
                                                                    "type": "uint256",
                                                                    "value": "amount"
                                                                },
                                                                "id": 4174,
                                                                "name": "Identifier",
                                                                "src": "7007:6:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "31653138",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 1000000000000000000",
                                                                    "value": "1e18"
                                                                },
                                                                "id": 4175,
                                                                "name": "Literal",
                                                                "src": "7015:4:15"
                                                            }
                                                        ],
                                                        "id": 4176,
                                                        "name": "FunctionCall",
                                                        "src": "6988:32:15"
                                                    }
                                                ],
                                                "id": 4177,
                                                "name": "FunctionCall",
                                                "src": "6965:56:15"
                                            }
                                        ],
                                        "id": 4178,
                                        "name": "ExpressionStatement",
                                        "src": "6965:56:15"
                                    }
                                ],
                                "id": 4179,
                                "name": "Block",
                                "src": "6372:657:15"
                            }
                        ],
                        "id": 4180,
                        "name": "FunctionDefinition",
                        "src": "6260:769:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "issue",
                            "scope": 5750,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "party",
                                            "scope": 4222,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4181,
                                                "name": "ElementaryTypeName",
                                                "src": "7228:7:15"
                                            }
                                        ],
                                        "id": 4182,
                                        "name": "VariableDeclaration",
                                        "src": "7228:13:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "currency",
                                            "scope": 4222,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 4183,
                                                "name": "ElementaryTypeName",
                                                "src": "7243:7:15"
                                            }
                                        ],
                                        "id": 4184,
                                        "name": "VariableDeclaration",
                                        "src": "7243:16:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 4222,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 4185,
                                                "name": "ElementaryTypeName",
                                                "src": "7261:7:15"
                                            }
                                        ],
                                        "id": 4186,
                                        "name": "VariableDeclaration",
                                        "src": "7261:14:15"
                                    }
                                ],
                                "id": 4187,
                                "name": "ParameterList",
                                "src": "7227:49:15"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 4188,
                                "name": "ParameterList",
                                "src": "7285:0:15"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "member_name": "issuedAmount",
                                                            "referencedDeclaration": 3643,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct Cash.deposit storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3659,
                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                    "value": "_deposits"
                                                                                },
                                                                                "id": 4189,
                                                                                "name": "Identifier",
                                                                                "src": "7341:9:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4182,
                                                                                    "type": "address",
                                                                                    "value": "party"
                                                                                },
                                                                                "id": 4190,
                                                                                "name": "Identifier",
                                                                                "src": "7351:5:15"
                                                                            }
                                                                        ],
                                                                        "id": 4192,
                                                                        "name": "IndexAccess",
                                                                        "src": "7341:16:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4184,
                                                                            "type": "bytes32",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 4191,
                                                                        "name": "Identifier",
                                                                        "src": "7358:8:15"
                                                                    }
                                                                ],
                                                                "id": 4193,
                                                                "name": "IndexAccess",
                                                                "src": "7341:26:15"
                                                            }
                                                        ],
                                                        "id": 4194,
                                                        "name": "MemberAccess",
                                                        "src": "7341:39:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "add",
                                                                    "referencedDeclaration": 10236,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10483,
                                                                            "type": "type(library Math)",
                                                                            "value": "Math"
                                                                        },
                                                                        "id": 4195,
                                                                        "name": "Identifier",
                                                                        "src": "7383:4:15"
                                                                    }
                                                                ],
                                                                "id": 4196,
                                                                "name": "MemberAccess",
                                                                "src": "7383:8:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "issuedAmount",
                                                                    "referencedDeclaration": 3643,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct Cash.deposit storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3659,
                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                            "value": "_deposits"
                                                                                        },
                                                                                        "id": 4197,
                                                                                        "name": "Identifier",
                                                                                        "src": "7392:9:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4182,
                                                                                            "type": "address",
                                                                                            "value": "party"
                                                                                        },
                                                                                        "id": 4198,
                                                                                        "name": "Identifier",
                                                                                        "src": "7402:5:15"
                                                                                    }
                                                                                ],
                                                                                "id": 4199,
                                                                                "name": "IndexAccess",
                                                                                "src": "7392:16:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4184,
                                                                                    "type": "bytes32",
                                                                                    "value": "currency"
                                                                                },
                                                                                "id": 4200,
                                                                                "name": "Identifier",
                                                                                "src": "7409:8:15"
                                                                            }
                                                                        ],
                                                                        "id": 4201,
                                                                        "name": "IndexAccess",
                                                                        "src": "7392:26:15"
                                                                    }
                                                                ],
                                                                "id": 4202,
                                                                "name": "MemberAccess",
                                                                "src": "7392:39:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4186,
                                                                    "type": "uint256",
                                                                    "value": "amount"
                                                                },
                                                                "id": 4203,
                                                                "name": "Identifier",
                                                                "src": "7433:6:15"
                                                            }
                                                        ],
                                                        "id": 4204,
                                                        "name": "FunctionCall",
                                                        "src": "7383:57:15"
                                                    }
                                                ],
                                                "id": 4205,
                                                "name": "Assignment",
                                                "src": "7341:99:15"
                                            }
                                        ],
                                        "id": 4206,
                                        "name": "ExpressionStatement",
                                        "src": "7341:99:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 12418,
                                                            "type": "function (address,uint256)",
                                                            "value": "_mint"
                                                        },
                                                        "id": 4207,
                                                        "name": "Identifier",
                                                        "src": "7489:5:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4182,
                                                            "type": "address",
                                                            "value": "party"
                                                        },
                                                        "id": 4208,
                                                        "name": "Identifier",
                                                        "src": "7495:5:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4186,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 4209,
                                                        "name": "Identifier",
                                                        "src": "7502:6:15"
                                                    }
                                                ],
                                                "id": 4210,
                                                "name": "FunctionCall",
                                                "src": "7489:20:15"
                                            }
                                        ],
                                        "id": 4211,
                                        "name": "ExpressionStatement",
                                        "src": "7489:20:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3675,
                                                            "type": "function (address,bytes32,uint256,uint256)",
                                                            "value": "CashIssued"
                                                        },
                                                        "id": 4212,
                                                        "name": "Identifier",
                                                        "src": "7559:10:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4182,
                                                            "type": "address",
                                                            "value": "party"
                                                        },
                                                        "id": 4213,
                                                        "name": "Identifier",
                                                        "src": "7570:5:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3639,
                                                            "type": "bytes32",
                                                            "value": "_cashtokenName"
                                                        },
                                                        "id": 4214,
                                                        "name": "Identifier",
                                                        "src": "7577:14:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4186,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 4215,
                                                        "name": "Identifier",
                                                        "src": "7593:6:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 12173,
                                                                    "type": "function (address) view returns (uint256)",
                                                                    "value": "balanceOf"
                                                                },
                                                                "id": 4216,
                                                                "name": "Identifier",
                                                                "src": "7601:9:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4182,
                                                                    "type": "address",
                                                                    "value": "party"
                                                                },
                                                                "id": 4217,
                                                                "name": "Identifier",
                                                                "src": "7611:5:15"
                                                            }
                                                        ],
                                                        "id": 4218,
                                                        "name": "FunctionCall",
                                                        "src": "7601:16:15"
                                                    }
                                                ],
                                                "id": 4219,
                                                "name": "FunctionCall",
                                                "src": "7559:59:15"
                                            }
                                        ],
                                        "id": 4220,
                                        "name": "EmitStatement",
                                        "src": "7554:64:15"
                                    }
                                ],
                                "id": 4221,
                                "name": "Block",
                                "src": "7285:341:15"
                            }
                        ],
                        "id": 4222,
                        "name": "FunctionDefinition",
                        "src": "7213:413:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "requestAddToBalance",
                            "scope": 5750,
                            "stateMutability": "nonpayable",
                            "superFunction": 8180,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokens",
                                            "scope": 4255,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 4223,
                                                "name": "ElementaryTypeName",
                                                "src": "7705:7:15"
                                            }
                                        ],
                                        "id": 4224,
                                        "name": "VariableDeclaration",
                                        "src": "7705:14:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "sender",
                                            "scope": 4255,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4225,
                                                "name": "ElementaryTypeName",
                                                "src": "7721:7:15"
                                            }
                                        ],
                                        "id": 4226,
                                        "name": "VariableDeclaration",
                                        "src": "7721:14:15"
                                    }
                                ],
                                "id": 4227,
                                "name": "ParameterList",
                                "src": "7704:32:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 4255,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 4228,
                                                "name": "ElementaryTypeName",
                                                "src": "7755:4:15"
                                            }
                                        ],
                                        "id": 4229,
                                        "name": "VariableDeclaration",
                                        "src": "7755:4:15"
                                    }
                                ],
                                "id": 4230,
                                "name": "ParameterList",
                                "src": "7754:6:15"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 4231,
                                                        "name": "Identifier",
                                                        "src": "7771:7:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "||",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "bytes32",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address_payable",
                                                                                            "typeString": "address payable"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "getType",
                                                                                    "referencedDeclaration": 8240,
                                                                                    "type": "function (address) view external returns (bytes32)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3633,
                                                                                            "type": "contract ViaFactory",
                                                                                            "value": "_factory"
                                                                                        },
                                                                                        "id": 4232,
                                                                                        "name": "Identifier",
                                                                                        "src": "7779:8:15"
                                                                                    }
                                                                                ],
                                                                                "id": 4233,
                                                                                "name": "MemberAccess",
                                                                                "src": "7779:16:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "sender",
                                                                                    "referencedDeclaration": null,
                                                                                    "type": "address payable"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 13007,
                                                                                            "type": "msg",
                                                                                            "value": "msg"
                                                                                        },
                                                                                        "id": 4234,
                                                                                        "name": "Identifier",
                                                                                        "src": "7796:3:15"
                                                                                    }
                                                                                ],
                                                                                "id": 4235,
                                                                                "name": "MemberAccess",
                                                                                "src": "7796:10:15"
                                                                            }
                                                                        ],
                                                                        "id": 4236,
                                                                        "name": "FunctionCall",
                                                                        "src": "7779:28:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "56696143617368",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"ViaCash\"",
                                                                            "value": "ViaCash"
                                                                        },
                                                                        "id": 4237,
                                                                        "name": "Literal",
                                                                        "src": "7811:9:15"
                                                                    }
                                                                ],
                                                                "id": 4238,
                                                                "name": "BinaryOperation",
                                                                "src": "7779:41:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "bytes32",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address_payable",
                                                                                            "typeString": "address payable"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "getType",
                                                                                    "referencedDeclaration": 8240,
                                                                                    "type": "function (address) view external returns (bytes32)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3633,
                                                                                            "type": "contract ViaFactory",
                                                                                            "value": "_factory"
                                                                                        },
                                                                                        "id": 4239,
                                                                                        "name": "Identifier",
                                                                                        "src": "7824:8:15"
                                                                                    }
                                                                                ],
                                                                                "id": 4240,
                                                                                "name": "MemberAccess",
                                                                                "src": "7824:16:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "sender",
                                                                                    "referencedDeclaration": null,
                                                                                    "type": "address payable"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 13007,
                                                                                            "type": "msg",
                                                                                            "value": "msg"
                                                                                        },
                                                                                        "id": 4241,
                                                                                        "name": "Identifier",
                                                                                        "src": "7841:3:15"
                                                                                    }
                                                                                ],
                                                                                "id": 4242,
                                                                                "name": "MemberAccess",
                                                                                "src": "7841:10:15"
                                                                            }
                                                                        ],
                                                                        "id": 4243,
                                                                        "name": "FunctionCall",
                                                                        "src": "7824:28:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "566961426f6e64",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"ViaBond\"",
                                                                            "value": "ViaBond"
                                                                        },
                                                                        "id": 4244,
                                                                        "name": "Literal",
                                                                        "src": "7856:9:15"
                                                                    }
                                                                ],
                                                                "id": 4245,
                                                                "name": "BinaryOperation",
                                                                "src": "7824:41:15"
                                                            }
                                                        ],
                                                        "id": 4246,
                                                        "name": "BinaryOperation",
                                                        "src": "7779:86:15"
                                                    }
                                                ],
                                                "id": 4247,
                                                "name": "FunctionCall",
                                                "src": "7771:95:15"
                                            }
                                        ],
                                        "id": 4248,
                                        "name": "ExpressionStatement",
                                        "src": "7771:95:15"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 4230
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4284,
                                                            "type": "function (uint256,address) returns (bool)",
                                                            "value": "addToBalance"
                                                        },
                                                        "id": 4249,
                                                        "name": "Identifier",
                                                        "src": "7884:12:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4224,
                                                            "type": "uint256",
                                                            "value": "tokens"
                                                        },
                                                        "id": 4250,
                                                        "name": "Identifier",
                                                        "src": "7897:6:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4226,
                                                            "type": "address",
                                                            "value": "sender"
                                                        },
                                                        "id": 4251,
                                                        "name": "Identifier",
                                                        "src": "7905:6:15"
                                                    }
                                                ],
                                                "id": 4252,
                                                "name": "FunctionCall",
                                                "src": "7884:28:15"
                                            }
                                        ],
                                        "id": 4253,
                                        "name": "Return",
                                        "src": "7877:35:15"
                                    }
                                ],
                                "id": 4254,
                                "name": "Block",
                                "src": "7760:160:15"
                            }
                        ],
                        "id": 4255,
                        "name": "FunctionDefinition",
                        "src": "7676:244:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "addToBalance",
                            "scope": 5750,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokens",
                                            "scope": 4284,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 4256,
                                                "name": "ElementaryTypeName",
                                                "src": "8028:7:15"
                                            }
                                        ],
                                        "id": 4257,
                                        "name": "VariableDeclaration",
                                        "src": "8028:14:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "sender",
                                            "scope": 4284,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4258,
                                                "name": "ElementaryTypeName",
                                                "src": "8044:7:15"
                                            }
                                        ],
                                        "id": 4259,
                                        "name": "VariableDeclaration",
                                        "src": "8044:14:15"
                                    }
                                ],
                                "id": 4260,
                                "name": "ParameterList",
                                "src": "8027:32:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 4284,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 4261,
                                                "name": "ElementaryTypeName",
                                                "src": "8077:4:15"
                                            }
                                        ],
                                        "id": 4262,
                                        "name": "VariableDeclaration",
                                        "src": "8077:4:15"
                                    }
                                ],
                                "id": 4263,
                                "name": "ParameterList",
                                "src": "8076:6:15"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": ">=",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 12173,
                                                                    "type": "function (address) view returns (uint256)",
                                                                    "value": "balanceOf"
                                                                },
                                                                "id": 4264,
                                                                "name": "Identifier",
                                                                "src": "8161:9:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4259,
                                                                    "type": "address",
                                                                    "value": "sender"
                                                                },
                                                                "id": 4265,
                                                                "name": "Identifier",
                                                                "src": "8171:6:15"
                                                            }
                                                        ],
                                                        "id": 4266,
                                                        "name": "FunctionCall",
                                                        "src": "8161:17:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4257,
                                                            "type": "uint256",
                                                            "value": "tokens"
                                                        },
                                                        "id": 4267,
                                                        "name": "Identifier",
                                                        "src": "8182:6:15"
                                                    }
                                                ],
                                                "id": 4268,
                                                "name": "BinaryOperation",
                                                "src": "8161:27:15"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address_payable",
                                                                                    "typeString": "address payable"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 12375,
                                                                            "type": "function (address,address,uint256)",
                                                                            "value": "_transfer"
                                                                        },
                                                                        "id": 4269,
                                                                        "name": "Identifier",
                                                                        "src": "8204:9:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4259,
                                                                            "type": "address",
                                                                            "value": "sender"
                                                                        },
                                                                        "id": 4270,
                                                                        "name": "Identifier",
                                                                        "src": "8214:6:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "address payable",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                            "typeString": "contract Cash"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address)",
                                                                                    "value": "address"
                                                                                },
                                                                                "id": 4271,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "8222:7:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 13077,
                                                                                    "type": "contract Cash",
                                                                                    "value": "this"
                                                                                },
                                                                                "id": 4272,
                                                                                "name": "Identifier",
                                                                                "src": "8230:4:15"
                                                                            }
                                                                        ],
                                                                        "id": 4273,
                                                                        "name": "FunctionCall",
                                                                        "src": "8222:13:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4257,
                                                                            "type": "uint256",
                                                                            "value": "tokens"
                                                                        },
                                                                        "id": 4274,
                                                                        "name": "Identifier",
                                                                        "src": "8237:6:15"
                                                                    }
                                                                ],
                                                                "id": 4275,
                                                                "name": "FunctionCall",
                                                                "src": "8204:40:15"
                                                            }
                                                        ],
                                                        "id": 4276,
                                                        "name": "ExpressionStatement",
                                                        "src": "8204:40:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "functionReturnParameters": 4263
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "74727565",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "true"
                                                                },
                                                                "id": 4277,
                                                                "name": "Literal",
                                                                "src": "8266:4:15"
                                                            }
                                                        ],
                                                        "id": 4278,
                                                        "name": "Return",
                                                        "src": "8259:11:15"
                                                    }
                                                ],
                                                "id": 4279,
                                                "name": "Block",
                                                "src": "8189:93:15"
                                            },
                                            {
                                                "attributes": {
                                                    "functionReturnParameters": 4263
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "66616c7365",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "false"
                                                        },
                                                        "id": 4280,
                                                        "name": "Literal",
                                                        "src": "8317:5:15"
                                                    }
                                                ],
                                                "id": 4281,
                                                "name": "Return",
                                                "src": "8310:12:15"
                                            }
                                        ],
                                        "id": 4282,
                                        "name": "IfStatement",
                                        "src": "8158:164:15"
                                    }
                                ],
                                "id": 4283,
                                "name": "Block",
                                "src": "8082:248:15"
                            }
                        ],
                        "id": 4284,
                        "name": "FunctionDefinition",
                        "src": "8006:324:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "redeem",
                            "scope": 5750,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 5109,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 4285,
                                                "name": "ElementaryTypeName",
                                                "src": "8573:7:15"
                                            }
                                        ],
                                        "id": 4286,
                                        "name": "VariableDeclaration",
                                        "src": "8573:14:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "party",
                                            "scope": 5109,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4287,
                                                "name": "ElementaryTypeName",
                                                "src": "8589:7:15"
                                            }
                                        ],
                                        "id": 4288,
                                        "name": "VariableDeclaration",
                                        "src": "8589:13:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "operation",
                                            "scope": 5109,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 4289,
                                                "name": "ElementaryTypeName",
                                                "src": "8604:7:15"
                                            }
                                        ],
                                        "id": 4290,
                                        "name": "VariableDeclaration",
                                        "src": "8604:17:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "receiver",
                                            "scope": 5109,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4291,
                                                "name": "ElementaryTypeName",
                                                "src": "8623:7:15"
                                            }
                                        ],
                                        "id": 4292,
                                        "name": "VariableDeclaration",
                                        "src": "8623:16:15"
                                    }
                                ],
                                "id": 4293,
                                "name": "ParameterList",
                                "src": "8572:68:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5109,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 4294,
                                                "name": "ElementaryTypeName",
                                                "src": "8657:4:15"
                                            }
                                        ],
                                        "id": 4295,
                                        "name": "VariableDeclaration",
                                        "src": "8657:4:15"
                                    }
                                ],
                                "id": 4296,
                                "name": "ParameterList",
                                "src": "8656:6:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                4298
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "found",
                                                    "scope": 5108,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "bool",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bool",
                                                            "type": "bool"
                                                        },
                                                        "id": 4297,
                                                        "name": "ElementaryTypeName",
                                                        "src": "8673:4:15"
                                                    }
                                                ],
                                                "id": 4298,
                                                "name": "VariableDeclaration",
                                                "src": "8673:10:15"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "hexvalue": "66616c7365",
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "subdenomination": null,
                                                    "token": "bool",
                                                    "type": "bool",
                                                    "value": "false"
                                                },
                                                "id": 4299,
                                                "name": "Literal",
                                                "src": "8686:5:15"
                                            }
                                        ],
                                        "id": 4300,
                                        "name": "VariableDeclarationStatement",
                                        "src": "8673:18:15"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                4302
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "length",
                                                    "scope": 5108,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint",
                                                            "type": "uint256"
                                                        },
                                                        "id": 4301,
                                                        "name": "ElementaryTypeName",
                                                        "src": "8702:4:15"
                                                    }
                                                ],
                                                "id": 4302,
                                                "name": "VariableDeclaration",
                                                "src": "8702:11:15"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "member_name": "length",
                                                    "referencedDeclaration": null,
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3649,
                                                            "type": "bytes32[] storage ref",
                                                            "value": "currencies"
                                                        },
                                                        "id": 4303,
                                                        "name": "Identifier",
                                                        "src": "8716:10:15"
                                                    }
                                                ],
                                                "id": 4304,
                                                "name": "MemberAccess",
                                                "src": "8716:17:15"
                                            }
                                        ],
                                        "id": 4305,
                                        "name": "VariableDeclarationStatement",
                                        "src": "8702:31:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "assignments": [
                                                        4307
                                                    ]
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "constant": false,
                                                            "name": "i",
                                                            "scope": 5105,
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "type": "uint256",
                                                            "value": null,
                                                            "visibility": "internal"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "uint",
                                                                    "type": "uint256"
                                                                },
                                                                "id": 4306,
                                                                "name": "ElementaryTypeName",
                                                                "src": "8748:4:15"
                                                            }
                                                        ],
                                                        "id": 4307,
                                                        "name": "VariableDeclaration",
                                                        "src": "8748:6:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 4308,
                                                        "name": "Literal",
                                                        "src": "8755:1:15"
                                                    }
                                                ],
                                                "id": 4309,
                                                "name": "VariableDeclarationStatement",
                                                "src": "8748:8:15"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "&&",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "<",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4307,
                                                                    "type": "uint256",
                                                                    "value": "i"
                                                                },
                                                                "id": 4310,
                                                                "name": "Identifier",
                                                                "src": "8758:1:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4302,
                                                                    "type": "uint256",
                                                                    "value": "length"
                                                                },
                                                                "id": 4311,
                                                                "name": "Identifier",
                                                                "src": "8760:6:15"
                                                            }
                                                        ],
                                                        "id": 4312,
                                                        "name": "BinaryOperation",
                                                        "src": "8758:8:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": ">",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4286,
                                                                    "type": "uint256",
                                                                    "value": "amount"
                                                                },
                                                                "id": 4313,
                                                                "name": "Identifier",
                                                                "src": "8770:6:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 4314,
                                                                "name": "Literal",
                                                                "src": "8777:1:15"
                                                            }
                                                        ],
                                                        "id": 4315,
                                                        "name": "BinaryOperation",
                                                        "src": "8770:8:15"
                                                    }
                                                ],
                                                "id": 4316,
                                                "name": "BinaryOperation",
                                                "src": "8758:20:15"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "++",
                                                            "prefix": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4307,
                                                                    "type": "uint256",
                                                                    "value": "i"
                                                                },
                                                                "id": 4317,
                                                                "name": "Identifier",
                                                                "src": "8780:1:15"
                                                            }
                                                        ],
                                                        "id": 4318,
                                                        "name": "UnaryOperation",
                                                        "src": "8780:3:15"
                                                    }
                                                ],
                                                "id": 4319,
                                                "name": "ExpressionStatement",
                                                "src": "8780:3:15"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "falseBody": null
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "&&",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "!=",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "issuedAmount",
                                                                                    "referencedDeclaration": 3643,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 3659,
                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                            "value": "_deposits"
                                                                                                        },
                                                                                                        "id": 4320,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "8805:9:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 4288,
                                                                                                            "type": "address",
                                                                                                            "value": "party"
                                                                                                        },
                                                                                                        "id": 4321,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "8815:5:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4322,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "8805:16:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "bytes32"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 3649,
                                                                                                            "type": "bytes32[] storage ref",
                                                                                                            "value": "currencies"
                                                                                                        },
                                                                                                        "id": 4323,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "8822:10:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 4307,
                                                                                                            "type": "uint256",
                                                                                                            "value": "i"
                                                                                                        },
                                                                                                        "id": 4324,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "8833:1:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4325,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "8822:13:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4326,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "8805:31:15"
                                                                                    }
                                                                                ],
                                                                                "id": 4327,
                                                                                "name": "MemberAccess",
                                                                                "src": "8805:44:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "30",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "number",
                                                                                    "type": "int_const 0",
                                                                                    "value": "0"
                                                                                },
                                                                                "id": 4328,
                                                                                "name": "Literal",
                                                                                "src": "8851:1:15"
                                                                            }
                                                                        ],
                                                                        "id": 4329,
                                                                        "name": "BinaryOperation",
                                                                        "src": "8805:47:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "!=",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "depositAmount",
                                                                                    "referencedDeclaration": 3641,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 3659,
                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                            "value": "_deposits"
                                                                                                        },
                                                                                                        "id": 4330,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "8856:9:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 4288,
                                                                                                            "type": "address",
                                                                                                            "value": "party"
                                                                                                        },
                                                                                                        "id": 4331,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "8866:5:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4332,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "8856:16:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "bytes32"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 3649,
                                                                                                            "type": "bytes32[] storage ref",
                                                                                                            "value": "currencies"
                                                                                                        },
                                                                                                        "id": 4333,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "8873:10:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 4307,
                                                                                                            "type": "uint256",
                                                                                                            "value": "i"
                                                                                                        },
                                                                                                        "id": 4334,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "8884:1:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4335,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "8873:13:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4336,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "8856:31:15"
                                                                                    }
                                                                                ],
                                                                                "id": 4337,
                                                                                "name": "MemberAccess",
                                                                                "src": "8856:45:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "30",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "number",
                                                                                    "type": "int_const 0",
                                                                                    "value": "0"
                                                                                },
                                                                                "id": 4338,
                                                                                "name": "Literal",
                                                                                "src": "8904:1:15"
                                                                            }
                                                                        ],
                                                                        "id": 4339,
                                                                        "name": "BinaryOperation",
                                                                        "src": "8856:49:15"
                                                                    }
                                                                ],
                                                                "id": 4340,
                                                                "name": "BinaryOperation",
                                                                "src": "8805:100:15"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "assignments": [
                                                                                4342
                                                                            ]
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "constant": false,
                                                                                    "name": "value",
                                                                                    "scope": 5102,
                                                                                    "stateVariable": false,
                                                                                    "storageLocation": "default",
                                                                                    "type": "uint256",
                                                                                    "value": null,
                                                                                    "visibility": "internal"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "name": "uint256",
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "id": 4341,
                                                                                        "name": "ElementaryTypeName",
                                                                                        "src": "9053:7:15"
                                                                                    }
                                                                                ],
                                                                                "id": 4342,
                                                                                "name": "VariableDeclaration",
                                                                                "src": "9053:13:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "mulDown",
                                                                                            "referencedDeclaration": 8604,
                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8909,
                                                                                                    "type": "type(library FixedPoint)",
                                                                                                    "value": "FixedPoint"
                                                                                                },
                                                                                                "id": 4343,
                                                                                                "name": "Identifier",
                                                                                                "src": "9069:10:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4344,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "9069:18:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "uint256",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "divDown",
                                                                                                    "referencedDeclaration": 8695,
                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 8909,
                                                                                                            "type": "type(library FixedPoint)",
                                                                                                            "value": "FixedPoint"
                                                                                                        },
                                                                                                        "id": 4345,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "9088:10:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4346,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "9088:18:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 4286,
                                                                                                    "type": "uint256",
                                                                                                    "value": "amount"
                                                                                                },
                                                                                                "id": 4347,
                                                                                                "name": "Identifier",
                                                                                                "src": "9107:6:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "issuedAmount",
                                                                                                    "referencedDeclaration": 3643,
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 3659,
                                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                            "value": "_deposits"
                                                                                                                        },
                                                                                                                        "id": 4348,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "9115:9:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                            "type": "address",
                                                                                                                            "value": "party"
                                                                                                                        },
                                                                                                                        "id": 4349,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "9125:5:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4350,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "9115:16:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "bytes32"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                            "value": "currencies"
                                                                                                                        },
                                                                                                                        "id": 4351,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "9132:10:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "i"
                                                                                                                        },
                                                                                                                        "id": 4352,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "9143:1:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4353,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "9132:13:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4354,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "9115:31:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4355,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "9115:44:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4356,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "9088:72:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "depositAmount",
                                                                                            "referencedDeclaration": 3641,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct Cash.deposit storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                    "value": "_deposits"
                                                                                                                },
                                                                                                                "id": 4357,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "9162:9:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                    "type": "address",
                                                                                                                    "value": "party"
                                                                                                                },
                                                                                                                "id": 4358,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "9172:5:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4359,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "9162:16:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "bytes32"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                    "value": "currencies"
                                                                                                                },
                                                                                                                "id": 4360,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "9179:10:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "i"
                                                                                                                },
                                                                                                                "id": 4361,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "9190:1:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4362,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "9179:13:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4363,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "9162:31:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4364,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "9162:45:15"
                                                                                    }
                                                                                ],
                                                                                "id": 4365,
                                                                                "name": "FunctionCall",
                                                                                "src": "9069:139:15"
                                                                            }
                                                                        ],
                                                                        "id": 4366,
                                                                        "name": "VariableDeclarationStatement",
                                                                        "src": "9053:155:15"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "commonType": {
                                                                                        "typeIdentifier": "t_bool",
                                                                                        "typeString": "bool"
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "&&",
                                                                                    "type": "bool"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "commonType": {
                                                                                                "typeIdentifier": "t_bool",
                                                                                                "typeString": "bool"
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "&&",
                                                                                            "type": "bool"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "commonType": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": ">=",
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "member_name": "issuedAmount",
                                                                                                            "referencedDeclaration": 3643,
                                                                                                            "type": "uint256"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "struct Cash.deposit storage ref"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                    "value": "_deposits"
                                                                                                                                },
                                                                                                                                "id": 4367,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "9230:9:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "party"
                                                                                                                                },
                                                                                                                                "id": 4368,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "9240:5:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4369,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "9230:16:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "bytes32"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                    "value": "currencies"
                                                                                                                                },
                                                                                                                                "id": 4370,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "9247:10:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "i"
                                                                                                                                },
                                                                                                                                "id": 4371,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "9258:1:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4372,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "9247:13:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4373,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "9230:31:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4374,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "9230:44:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 4286,
                                                                                                            "type": "uint256",
                                                                                                            "value": "amount"
                                                                                                        },
                                                                                                        "id": 4375,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "9278:6:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4376,
                                                                                                "name": "BinaryOperation",
                                                                                                "src": "9230:54:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "commonType": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": ">",
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 4342,
                                                                                                            "type": "uint256",
                                                                                                            "value": "value"
                                                                                                        },
                                                                                                        "id": 4377,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "9288:5:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "30",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "number",
                                                                                                            "type": "int_const 0",
                                                                                                            "value": "0"
                                                                                                        },
                                                                                                        "id": 4378,
                                                                                                        "name": "Literal",
                                                                                                        "src": "9296:1:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4379,
                                                                                                "name": "BinaryOperation",
                                                                                                "src": "9288:9:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4380,
                                                                                        "name": "BinaryOperation",
                                                                                        "src": "9230:67:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "commonType": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": ">=",
                                                                                            "type": "bool"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "depositAmount",
                                                                                                    "referencedDeclaration": 3641,
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 3659,
                                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                            "value": "_deposits"
                                                                                                                        },
                                                                                                                        "id": 4381,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "9301:9:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                            "type": "address",
                                                                                                                            "value": "party"
                                                                                                                        },
                                                                                                                        "id": 4382,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "9311:5:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4383,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "9301:16:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "bytes32"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                            "value": "currencies"
                                                                                                                        },
                                                                                                                        "id": 4384,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "9318:10:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "i"
                                                                                                                        },
                                                                                                                        "id": 4385,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "9329:1:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4386,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "9318:13:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4387,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "9301:31:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4388,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "9301:45:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 4342,
                                                                                                    "type": "uint256",
                                                                                                    "value": "value"
                                                                                                },
                                                                                                "id": 4389,
                                                                                                "name": "Identifier",
                                                                                                "src": "9350:5:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4390,
                                                                                        "name": "BinaryOperation",
                                                                                        "src": "9301:54:15"
                                                                                    }
                                                                                ],
                                                                                "id": 4391,
                                                                                "name": "BinaryOperation",
                                                                                "src": "9230:125:15"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "tuple()",
                                                                                                    "type_conversion": false
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_bool",
                                                                                                                    "typeString": "bool"
                                                                                                                },
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_stringliteral_a1bb289ca5093f725927da5725490b6088de689057901f6963d5358c4ab7c40a",
                                                                                                                    "typeString": "literal_string \"Lock on redemption\""
                                                                                                                }
                                                                                                            ],
                                                                                                            "overloadedDeclarations": [
                                                                                                                13010,
                                                                                                                13011
                                                                                                            ],
                                                                                                            "referencedDeclaration": 13011,
                                                                                                            "type": "function (bool,string memory) pure",
                                                                                                            "value": "require"
                                                                                                        },
                                                                                                        "id": 4392,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "9395:7:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "operator": "!",
                                                                                                            "prefix": true,
                                                                                                            "type": "bool"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "bool"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 3711,
                                                                                                                            "type": "mapping(bytes32 => bool)",
                                                                                                                            "value": "_lock"
                                                                                                                        },
                                                                                                                        "id": 4393,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "9404:5:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "hexvalue": "72656465656d",
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": true,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "subdenomination": null,
                                                                                                                            "token": "string",
                                                                                                                            "type": "literal_string \"redeem\"",
                                                                                                                            "value": "redeem"
                                                                                                                        },
                                                                                                                        "id": 4394,
                                                                                                                        "name": "Literal",
                                                                                                                        "src": "9410:8:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4395,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "9404:15:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4396,
                                                                                                        "name": "UnaryOperation",
                                                                                                        "src": "9403:16:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "4c6f636b206f6e20726564656d7074696f6e",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "string",
                                                                                                            "type": "literal_string \"Lock on redemption\"",
                                                                                                            "value": "Lock on redemption"
                                                                                                        },
                                                                                                        "id": 4397,
                                                                                                        "name": "Literal",
                                                                                                        "src": "9421:20:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4398,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "9395:47:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4399,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "9395:47:15"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "=",
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": true,
                                                                                                            "type": "bool"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 3711,
                                                                                                                    "type": "mapping(bytes32 => bool)",
                                                                                                                    "value": "_lock"
                                                                                                                },
                                                                                                                "id": 4400,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "9465:5:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "hexvalue": "72656465656d",
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "subdenomination": null,
                                                                                                                    "token": "string",
                                                                                                                    "type": "literal_string \"redeem\"",
                                                                                                                    "value": "redeem"
                                                                                                                },
                                                                                                                "id": 4401,
                                                                                                                "name": "Literal",
                                                                                                                "src": "9471:8:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4402,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "9465:15:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "74727565",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "bool",
                                                                                                            "type": "bool",
                                                                                                            "value": "true"
                                                                                                        },
                                                                                                        "id": 4403,
                                                                                                        "name": "Literal",
                                                                                                        "src": "9483:4:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4404,
                                                                                                "name": "Assignment",
                                                                                                "src": "9465:22:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4405,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "9465:22:15"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "=",
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": true,
                                                                                                            "member_name": "depositAmount",
                                                                                                            "referencedDeclaration": 3641,
                                                                                                            "type": "uint256"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "struct Cash.deposit storage ref"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                    "value": "_deposits"
                                                                                                                                },
                                                                                                                                "id": 4406,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "9526:9:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "party"
                                                                                                                                },
                                                                                                                                "id": 4407,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "9536:5:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4411,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "9526:16:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "bytes32"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                    "value": "currencies"
                                                                                                                                },
                                                                                                                                "id": 4408,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "9543:10:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "i"
                                                                                                                                },
                                                                                                                                "id": 4409,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "9554:1:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4410,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "9543:13:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4412,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "9526:31:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4413,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "9526:45:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "uint256",
                                                                                                            "type_conversion": false
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "sub",
                                                                                                                    "referencedDeclaration": 10300,
                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 10483,
                                                                                                                            "type": "type(library Math)",
                                                                                                                            "value": "Math"
                                                                                                                        },
                                                                                                                        "id": 4414,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "9574:4:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4415,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "9574:8:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "depositAmount",
                                                                                                                    "referencedDeclaration": 3641,
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 3659,
                                                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                            "value": "_deposits"
                                                                                                                                        },
                                                                                                                                        "id": 4416,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "9583:9:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "party"
                                                                                                                                        },
                                                                                                                                        "id": 4417,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "9593:5:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4418,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "9583:16:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "bytes32"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                            "value": "currencies"
                                                                                                                                        },
                                                                                                                                        "id": 4419,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "9600:10:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "i"
                                                                                                                                        },
                                                                                                                                        "id": 4420,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "9611:1:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4421,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "9600:13:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4422,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "9583:31:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4423,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "9583:45:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 4342,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "value"
                                                                                                                },
                                                                                                                "id": 4424,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "9630:5:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4425,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "9574:62:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4426,
                                                                                                "name": "Assignment",
                                                                                                "src": "9526:110:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4427,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "9526:110:15"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "=",
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": true,
                                                                                                            "member_name": "issuedAmount",
                                                                                                            "referencedDeclaration": 3643,
                                                                                                            "type": "uint256"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "struct Cash.deposit storage ref"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                    "value": "_deposits"
                                                                                                                                },
                                                                                                                                "id": 4428,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "9675:9:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "party"
                                                                                                                                },
                                                                                                                                "id": 4429,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "9685:5:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4433,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "9675:16:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "bytes32"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                    "value": "currencies"
                                                                                                                                },
                                                                                                                                "id": 4430,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "9692:10:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "i"
                                                                                                                                },
                                                                                                                                "id": 4431,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "9703:1:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4432,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "9692:13:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4434,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "9675:31:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4435,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "9675:44:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "uint256",
                                                                                                            "type_conversion": false
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "sub",
                                                                                                                    "referencedDeclaration": 10300,
                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 10483,
                                                                                                                            "type": "type(library Math)",
                                                                                                                            "value": "Math"
                                                                                                                        },
                                                                                                                        "id": 4436,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "9722:4:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4437,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "9722:8:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "issuedAmount",
                                                                                                                    "referencedDeclaration": 3643,
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 3659,
                                                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                            "value": "_deposits"
                                                                                                                                        },
                                                                                                                                        "id": 4438,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "9731:9:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "party"
                                                                                                                                        },
                                                                                                                                        "id": 4439,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "9741:5:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4440,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "9731:16:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "bytes32"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                            "value": "currencies"
                                                                                                                                        },
                                                                                                                                        "id": 4441,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "9748:10:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "i"
                                                                                                                                        },
                                                                                                                                        "id": 4442,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "9759:1:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4443,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "9748:13:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4444,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "9731:31:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4445,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "9731:44:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 4286,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "amount"
                                                                                                                },
                                                                                                                "id": 4446,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "9777:6:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4447,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "9722:62:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4448,
                                                                                                "name": "Assignment",
                                                                                                "src": "9675:109:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4449,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "9675:109:15"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "commonType": {
                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                        "typeString": "bytes32"
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "==",
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 4290,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "operation"
                                                                                                        },
                                                                                                        "id": 4450,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "9810:9:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "72656465656d",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "string",
                                                                                                            "type": "literal_string \"redeem\"",
                                                                                                            "value": "redeem"
                                                                                                        },
                                                                                                        "id": 4451,
                                                                                                        "name": "Literal",
                                                                                                        "src": "9821:8:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4452,
                                                                                                "name": "BinaryOperation",
                                                                                                "src": "9810:19:15"
                                                                                            },
                                                                                            {
                                                                                                "children": [
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "isStructConstructorCall": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "type": "tuple()",
                                                                                                                    "type_conversion": false
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                    "typeString": "address"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 12462,
                                                                                                                            "type": "function (address,uint256)",
                                                                                                                            "value": "_burn"
                                                                                                                        },
                                                                                                                        "id": 4453,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "9901:5:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                            "type": "address",
                                                                                                                            "value": "party"
                                                                                                                        },
                                                                                                                        "id": 4454,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "9907:5:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 4286,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "amount"
                                                                                                                        },
                                                                                                                        "id": 4455,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "9914:6:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4456,
                                                                                                                "name": "FunctionCall",
                                                                                                                "src": "9901:20:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4457,
                                                                                                        "name": "ExpressionStatement",
                                                                                                        "src": "9901:20:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "operator": "=",
                                                                                                                    "type": "tuple()"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isInlineArray": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": true,
                                                                                                                            "type": "tuple(uint256,uint256)"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4286,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "amount"
                                                                                                                                },
                                                                                                                                "id": 4458,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "9949:6:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4342,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "value"
                                                                                                                                },
                                                                                                                                "id": 4459,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "9957:5:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4460,
                                                                                                                        "name": "TupleExpression",
                                                                                                                        "src": "9948:15:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "isStructConstructorCall": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "names": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "type": "tuple(uint256,uint256)",
                                                                                                                            "type_conversion": false
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": [
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                            "typeString": "address"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                                                            "typeString": "bytes32"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_stringliteral_014ab85ea8e748688cc6784b5e57ac1916c5079c4b0ea7171a3ee030794a44d0",
                                                                                                                                            "typeString": "literal_string \"withdrawl\""
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 5595,
                                                                                                                                    "type": "function (address,uint256,uint256,bytes32,bytes32) returns (uint256,uint256)",
                                                                                                                                    "value": "payFee"
                                                                                                                                },
                                                                                                                                "id": 4461,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "9966:6:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "party"
                                                                                                                                },
                                                                                                                                "id": 4462,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "9973:5:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4286,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "amount"
                                                                                                                                },
                                                                                                                                "id": 4463,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "9980:6:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4342,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "value"
                                                                                                                                },
                                                                                                                                "id": 4464,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "9988:5:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "bytes32"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                            "value": "currencies"
                                                                                                                                        },
                                                                                                                                        "id": 4465,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "9995:10:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "i"
                                                                                                                                        },
                                                                                                                                        "id": 4466,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "10006:1:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4467,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "9995:13:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "hexvalue": "77697468647261776c",
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": true,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "subdenomination": null,
                                                                                                                                    "token": "string",
                                                                                                                                    "type": "literal_string \"withdrawl\"",
                                                                                                                                    "value": "withdrawl"
                                                                                                                                },
                                                                                                                                "id": 4468,
                                                                                                                                "name": "Literal",
                                                                                                                                "src": "10010:11:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4469,
                                                                                                                        "name": "FunctionCall",
                                                                                                                        "src": "9966:56:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4470,
                                                                                                                "name": "Assignment",
                                                                                                                "src": "9948:74:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4471,
                                                                                                        "name": "ExpressionStatement",
                                                                                                        "src": "9948:74:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "commonType": {
                                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                                        "typeString": "bytes32"
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "operator": "==",
                                                                                                                    "type": "bool"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "bytes32"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                    "value": "currencies"
                                                                                                                                },
                                                                                                                                "id": 4472,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "10108:10:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "i"
                                                                                                                                },
                                                                                                                                "id": 4473,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "10119:1:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4474,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "10108:13:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "hexvalue": "6574686572",
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": true,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "subdenomination": null,
                                                                                                                            "token": "string",
                                                                                                                            "type": "literal_string \"ether\"",
                                                                                                                            "value": "ether"
                                                                                                                        },
                                                                                                                        "id": 4475,
                                                                                                                        "name": "Literal",
                                                                                                                        "src": "10123:7:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4476,
                                                                                                                "name": "BinaryOperation",
                                                                                                                "src": "10108:22:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "type": "tuple()",
                                                                                                                                    "type_conversion": false
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "member_name": "transfer",
                                                                                                                                            "referencedDeclaration": null,
                                                                                                                                            "type": "function (uint256)"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "names": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "type": "address payable",
                                                                                                                                                    "type_conversion": true
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_uint160",
                                                                                                                                                                    "typeString": "uint160"
                                                                                                                                                                }
                                                                                                                                                            ],
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": true,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "type(address)",
                                                                                                                                                            "value": "address"
                                                                                                                                                        },
                                                                                                                                                        "id": 4477,
                                                                                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                                                                                        "src": "10162:7:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "names": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "type": "uint160",
                                                                                                                                                            "type_conversion": true
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": [
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                                                            "typeString": "address"
                                                                                                                                                                        }
                                                                                                                                                                    ],
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": true,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "type(uint160)",
                                                                                                                                                                    "value": "uint160"
                                                                                                                                                                },
                                                                                                                                                                "id": 4478,
                                                                                                                                                                "name": "ElementaryTypeNameExpression",
                                                                                                                                                                "src": "10170:7:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "party"
                                                                                                                                                                },
                                                                                                                                                                "id": 4479,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "10178:5:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4480,
                                                                                                                                                        "name": "FunctionCall",
                                                                                                                                                        "src": "10170:14:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4481,
                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                "src": "10162:23:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4482,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "10162:32:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4342,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "value"
                                                                                                                                        },
                                                                                                                                        "id": 4483,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "10195:5:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4484,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "10162:39:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4485,
                                                                                                                        "name": "ExpressionStatement",
                                                                                                                        "src": "10162:39:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4486,
                                                                                                                "name": "Block",
                                                                                                                "src": "10131:98:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "commonType": {
                                                                                                                                "typeIdentifier": "t_bool",
                                                                                                                                "typeString": "bool"
                                                                                                                            },
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "operator": "==",
                                                                                                                            "type": "bool"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "type": "bool",
                                                                                                                                    "type_conversion": false
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                                                    "typeString": "bytes32"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "member_name": "checkSupportForToken",
                                                                                                                                            "referencedDeclaration": 8394,
                                                                                                                                            "type": "function (bytes32) view external returns (bool)"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 3633,
                                                                                                                                                    "type": "contract ViaFactory",
                                                                                                                                                    "value": "_factory"
                                                                                                                                                },
                                                                                                                                                "id": 4487,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "10263:8:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4488,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "10263:29:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "bytes32"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                                    "value": "currencies"
                                                                                                                                                },
                                                                                                                                                "id": 4489,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "10293:10:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                                    "type": "uint256",
                                                                                                                                                    "value": "i"
                                                                                                                                                },
                                                                                                                                                "id": 4490,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "10304:1:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4491,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "10293:13:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4492,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "10263:44:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "hexvalue": "74727565",
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": true,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "subdenomination": null,
                                                                                                                                    "token": "bool",
                                                                                                                                    "type": "bool",
                                                                                                                                    "value": "true"
                                                                                                                                },
                                                                                                                                "id": 4493,
                                                                                                                                "name": "Literal",
                                                                                                                                "src": "10309:4:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4494,
                                                                                                                        "name": "BinaryOperation",
                                                                                                                        "src": "10263:50:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "assignments": [
                                                                                                                                        4496
                                                                                                                                    ]
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "constant": false,
                                                                                                                                            "name": "token",
                                                                                                                                            "scope": 4512,
                                                                                                                                            "stateVariable": false,
                                                                                                                                            "storageLocation": "default",
                                                                                                                                            "type": "address",
                                                                                                                                            "value": null,
                                                                                                                                            "visibility": "internal"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "name": "address",
                                                                                                                                                    "stateMutability": "nonpayable",
                                                                                                                                                    "type": "address"
                                                                                                                                                },
                                                                                                                                                "id": 4495,
                                                                                                                                                "name": "ElementaryTypeName",
                                                                                                                                                "src": "10406:7:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4496,
                                                                                                                                        "name": "VariableDeclaration",
                                                                                                                                        "src": "10406:13:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "names": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "type": "address",
                                                                                                                                            "type_conversion": false
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": [
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                                                                            "typeString": "bytes32"
                                                                                                                                                        }
                                                                                                                                                    ],
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "member_name": "getCurrencyToken",
                                                                                                                                                    "referencedDeclaration": 8401,
                                                                                                                                                    "type": "function (bytes32) view external returns (address)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 3633,
                                                                                                                                                            "type": "contract ViaFactory",
                                                                                                                                                            "value": "_factory"
                                                                                                                                                        },
                                                                                                                                                        "id": 4497,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "10422:8:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4498,
                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                "src": "10422:25:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "bytes32"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                                            "value": "currencies"
                                                                                                                                                        },
                                                                                                                                                        "id": 4499,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "10448:10:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                                            "type": "uint256",
                                                                                                                                                            "value": "i"
                                                                                                                                                        },
                                                                                                                                                        "id": 4500,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "10459:1:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4501,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "10448:13:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4502,
                                                                                                                                        "name": "FunctionCall",
                                                                                                                                        "src": "10422:40:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4503,
                                                                                                                                "name": "VariableDeclarationStatement",
                                                                                                                                "src": "10406:56:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "names": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "type": "bool",
                                                                                                                                            "type_conversion": false
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": [
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                                            "typeString": "address"
                                                                                                                                                        },
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                        }
                                                                                                                                                    ],
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "member_name": "transfer",
                                                                                                                                                    "referencedDeclaration": 363,
                                                                                                                                                    "type": "function (address,uint256) external returns (bool)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "names": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "type": "contract IERC20",
                                                                                                                                                            "type_conversion": true
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": [
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                                                            "typeString": "address"
                                                                                                                                                                        }
                                                                                                                                                                    ],
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 409,
                                                                                                                                                                    "type": "type(contract IERC20)",
                                                                                                                                                                    "value": "IERC20"
                                                                                                                                                                },
                                                                                                                                                                "id": 4504,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "10493:6:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4496,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "token"
                                                                                                                                                                },
                                                                                                                                                                "id": 4505,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "10500:5:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4506,
                                                                                                                                                        "name": "FunctionCall",
                                                                                                                                                        "src": "10493:13:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4507,
                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                "src": "10493:22:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                                    "type": "address",
                                                                                                                                                    "value": "party"
                                                                                                                                                },
                                                                                                                                                "id": 4508,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "10516:5:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 4342,
                                                                                                                                                    "type": "uint256",
                                                                                                                                                    "value": "value"
                                                                                                                                                },
                                                                                                                                                "id": 4509,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "10523:5:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4510,
                                                                                                                                        "name": "FunctionCall",
                                                                                                                                        "src": "10493:36:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4511,
                                                                                                                                "name": "ExpressionStatement",
                                                                                                                                "src": "10493:36:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4512,
                                                                                                                        "name": "Block",
                                                                                                                        "src": "10314:243:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "commonType": {
                                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                                        "typeString": "address"
                                                                                                                                    },
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "operator": "!=",
                                                                                                                                    "type": "bool"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "names": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "type": "address",
                                                                                                                                            "type_conversion": false
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": [
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                                                                            "typeString": "bytes32"
                                                                                                                                                        },
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                                                                            "typeString": "literal_string \"ViaCash\""
                                                                                                                                                        }
                                                                                                                                                    ],
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "member_name": "getTokenByNameType",
                                                                                                                                                    "referencedDeclaration": 8276,
                                                                                                                                                    "type": "function (bytes32,bytes32) view external returns (address)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 3633,
                                                                                                                                                            "type": "contract ViaFactory",
                                                                                                                                                            "value": "_factory"
                                                                                                                                                        },
                                                                                                                                                        "id": 4513,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "10591:8:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4514,
                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                "src": "10591:27:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "bytes32"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                                            "value": "currencies"
                                                                                                                                                        },
                                                                                                                                                        "id": 4515,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "10619:10:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                                            "type": "uint256",
                                                                                                                                                            "value": "i"
                                                                                                                                                        },
                                                                                                                                                        "id": 4516,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "10630:1:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4517,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "10619:13:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "hexvalue": "56696143617368",
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": true,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "subdenomination": null,
                                                                                                                                                    "token": "string",
                                                                                                                                                    "type": "literal_string \"ViaCash\"",
                                                                                                                                                    "value": "ViaCash"
                                                                                                                                                },
                                                                                                                                                "id": 4518,
                                                                                                                                                "name": "Literal",
                                                                                                                                                "src": "10634:9:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4519,
                                                                                                                                        "name": "FunctionCall",
                                                                                                                                        "src": "10591:53:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": true,
                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "names": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "type": "address payable",
                                                                                                                                            "type_conversion": true
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": [
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                                                                                                            "typeString": "int_const 0"
                                                                                                                                                        }
                                                                                                                                                    ],
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": true,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "type(address)",
                                                                                                                                                    "value": "address"
                                                                                                                                                },
                                                                                                                                                "id": 4520,
                                                                                                                                                "name": "ElementaryTypeNameExpression",
                                                                                                                                                "src": "10646:7:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "hexvalue": "307830",
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": true,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "subdenomination": null,
                                                                                                                                                    "token": "number",
                                                                                                                                                    "type": "int_const 0",
                                                                                                                                                    "value": "0x0"
                                                                                                                                                },
                                                                                                                                                "id": 4521,
                                                                                                                                                "name": "Literal",
                                                                                                                                                "src": "10654:3:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4522,
                                                                                                                                        "name": "FunctionCall",
                                                                                                                                        "src": "10646:12:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4523,
                                                                                                                                "name": "BinaryOperation",
                                                                                                                                "src": "10591:67:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "assignments": [
                                                                                                                                                4525
                                                                                                                                            ]
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "constant": false,
                                                                                                                                                    "name": "cashToken",
                                                                                                                                                    "scope": 4557,
                                                                                                                                                    "stateVariable": false,
                                                                                                                                                    "storageLocation": "default",
                                                                                                                                                    "type": "address",
                                                                                                                                                    "value": null,
                                                                                                                                                    "visibility": "internal"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "name": "address",
                                                                                                                                                            "stateMutability": "nonpayable",
                                                                                                                                                            "type": "address"
                                                                                                                                                        },
                                                                                                                                                        "id": 4524,
                                                                                                                                                        "name": "ElementaryTypeName",
                                                                                                                                                        "src": "10760:7:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4525,
                                                                                                                                                "name": "VariableDeclaration",
                                                                                                                                                "src": "10760:17:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "names": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "type": "address",
                                                                                                                                                    "type_conversion": false
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                                                                    "typeString": "bytes32"
                                                                                                                                                                },
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                                                                                    "typeString": "literal_string \"ViaCash\""
                                                                                                                                                                }
                                                                                                                                                            ],
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "member_name": "getTokenByNameType",
                                                                                                                                                            "referencedDeclaration": 8276,
                                                                                                                                                            "type": "function (bytes32,bytes32) view external returns (address)"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3633,
                                                                                                                                                                    "type": "contract ViaFactory",
                                                                                                                                                                    "value": "_factory"
                                                                                                                                                                },
                                                                                                                                                                "id": 4526,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "10780:8:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4527,
                                                                                                                                                        "name": "MemberAccess",
                                                                                                                                                        "src": "10780:27:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "bytes32"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                                                    "value": "currencies"
                                                                                                                                                                },
                                                                                                                                                                "id": 4528,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "10808:10:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "value": "i"
                                                                                                                                                                },
                                                                                                                                                                "id": 4529,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "10819:1:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4530,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "10808:13:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "hexvalue": "56696143617368",
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": true,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "subdenomination": null,
                                                                                                                                                            "token": "string",
                                                                                                                                                            "type": "literal_string \"ViaCash\"",
                                                                                                                                                            "value": "ViaCash"
                                                                                                                                                        },
                                                                                                                                                        "id": 4531,
                                                                                                                                                        "name": "Literal",
                                                                                                                                                        "src": "10822:9:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4532,
                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                "src": "10780:52:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4533,
                                                                                                                                        "name": "VariableDeclarationStatement",
                                                                                                                                        "src": "10760:72:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "commonType": {
                                                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                                                        "typeString": "address"
                                                                                                                                                    },
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "operator": "==",
                                                                                                                                                    "type": "bool"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 4525,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "cashToken"
                                                                                                                                                        },
                                                                                                                                                        "id": 4534,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "10866:9:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "names": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "type": "address payable",
                                                                                                                                                            "type_conversion": true
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": [
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                                                                                                            "typeString": "contract Cash"
                                                                                                                                                                        }
                                                                                                                                                                    ],
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": true,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "type(address)",
                                                                                                                                                                    "value": "address"
                                                                                                                                                                },
                                                                                                                                                                "id": 4535,
                                                                                                                                                                "name": "ElementaryTypeNameExpression",
                                                                                                                                                                "src": "10877:7:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 13077,
                                                                                                                                                                    "type": "contract Cash",
                                                                                                                                                                    "value": "this"
                                                                                                                                                                },
                                                                                                                                                                "id": 4536,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "10885:4:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4537,
                                                                                                                                                        "name": "FunctionCall",
                                                                                                                                                        "src": "10877:13:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4538,
                                                                                                                                                "name": "BinaryOperation",
                                                                                                                                                "src": "10866:24:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "names": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "type": "uint256",
                                                                                                                                                            "type_conversion": false
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": [
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                                        },
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                                                            "typeString": "address"
                                                                                                                                                                        }
                                                                                                                                                                    ],
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 5278,
                                                                                                                                                                    "type": "function (uint256,address) returns (uint256)",
                                                                                                                                                                    "value": "deductFromBalance"
                                                                                                                                                                },
                                                                                                                                                                "id": 4539,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "10925:17:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4342,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "value": "value"
                                                                                                                                                                },
                                                                                                                                                                "id": 4540,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "10943:5:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "party"
                                                                                                                                                                },
                                                                                                                                                                "id": 4541,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "10950:5:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4542,
                                                                                                                                                        "name": "FunctionCall",
                                                                                                                                                        "src": "10925:31:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4543,
                                                                                                                                                "name": "ExpressionStatement",
                                                                                                                                                "src": "10925:31:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "names": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "type": "uint256",
                                                                                                                                                            "type_conversion": false
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": [
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                                        },
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                                                            "typeString": "address"
                                                                                                                                                                        }
                                                                                                                                                                    ],
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "member_name": "requestDeductFromBalance",
                                                                                                                                                                    "referencedDeclaration": 5222,
                                                                                                                                                                    "type": "function (uint256,address) external returns (uint256)"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": false,
                                                                                                                                                                            "isPure": false,
                                                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "names": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "type": "contract Cash",
                                                                                                                                                                            "type_conversion": true
                                                                                                                                                                        },
                                                                                                                                                                        "children": [
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "argumentTypes": [
                                                                                                                                                                                        {
                                                                                                                                                                                            "typeIdentifier": "t_address_payable",
                                                                                                                                                                                            "typeString": "address payable"
                                                                                                                                                                                        }
                                                                                                                                                                                    ],
                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "referencedDeclaration": 5750,
                                                                                                                                                                                    "type": "type(contract Cash)",
                                                                                                                                                                                    "value": "Cash"
                                                                                                                                                                                },
                                                                                                                                                                                "id": 4544,
                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                "src": "11025:4:15"
                                                                                                                                                                            },
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                                    "isPure": false,
                                                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                    "names": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "type": "address payable",
                                                                                                                                                                                    "type_conversion": true
                                                                                                                                                                                },
                                                                                                                                                                                "children": [
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                                                {
                                                                                                                                                                                                    "typeIdentifier": "t_uint160",
                                                                                                                                                                                                    "typeString": "uint160"
                                                                                                                                                                                                }
                                                                                                                                                                                            ],
                                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                                            "isLValue": false,
                                                                                                                                                                                            "isPure": true,
                                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                                            "type": "type(address)",
                                                                                                                                                                                            "value": "address"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 4545,
                                                                                                                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                                                                                                                        "src": "11030:7:15"
                                                                                                                                                                                    },
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                                            "isLValue": false,
                                                                                                                                                                                            "isPure": false,
                                                                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                                            "names": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "type": "uint160",
                                                                                                                                                                                            "type_conversion": true
                                                                                                                                                                                        },
                                                                                                                                                                                        "children": [
                                                                                                                                                                                            {
                                                                                                                                                                                                "attributes": {
                                                                                                                                                                                                    "argumentTypes": [
                                                                                                                                                                                                        {
                                                                                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                                                                                            "typeString": "address"
                                                                                                                                                                                                        }
                                                                                                                                                                                                    ],
                                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                                                    "isPure": true,
                                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                                    "type": "type(uint160)",
                                                                                                                                                                                                    "value": "uint160"
                                                                                                                                                                                                },
                                                                                                                                                                                                "id": 4546,
                                                                                                                                                                                                "name": "ElementaryTypeNameExpression",
                                                                                                                                                                                                "src": "11038:7:15"
                                                                                                                                                                                            },
                                                                                                                                                                                            {
                                                                                                                                                                                                "attributes": {
                                                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                                        null
                                                                                                                                                                                                    ],
                                                                                                                                                                                                    "referencedDeclaration": 4525,
                                                                                                                                                                                                    "type": "address",
                                                                                                                                                                                                    "value": "cashToken"
                                                                                                                                                                                                },
                                                                                                                                                                                                "id": 4547,
                                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                                "src": "11046:9:15"
                                                                                                                                                                                            }
                                                                                                                                                                                        ],
                                                                                                                                                                                        "id": 4548,
                                                                                                                                                                                        "name": "FunctionCall",
                                                                                                                                                                                        "src": "11038:18:15"
                                                                                                                                                                                    }
                                                                                                                                                                                ],
                                                                                                                                                                                "id": 4549,
                                                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                                                "src": "11030:27:15"
                                                                                                                                                                            }
                                                                                                                                                                        ],
                                                                                                                                                                        "id": 4550,
                                                                                                                                                                        "name": "FunctionCall",
                                                                                                                                                                        "src": "11025:33:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 4551,
                                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                                "src": "11025:58:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4342,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "value": "value"
                                                                                                                                                                },
                                                                                                                                                                "id": 4552,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "11084:5:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "party"
                                                                                                                                                                },
                                                                                                                                                                "id": 4553,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "11091:5:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4554,
                                                                                                                                                        "name": "FunctionCall",
                                                                                                                                                        "src": "11025:72:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4555,
                                                                                                                                                "name": "ExpressionStatement",
                                                                                                                                                "src": "11025:72:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4556,
                                                                                                                                        "name": "IfStatement",
                                                                                                                                        "src": "10863:234:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4557,
                                                                                                                                "name": "Block",
                                                                                                                                "src": "10659:466:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "falseBody": null
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "commonType": {
                                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                                "typeString": "uint256"
                                                                                                                                            },
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "operator": "!=",
                                                                                                                                            "type": "bool"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "uint256"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 3653,
                                                                                                                                                            "type": "mapping(bytes32 => uint256)",
                                                                                                                                                            "value": "currencyIndex"
                                                                                                                                                        },
                                                                                                                                                        "id": 4558,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "11159:13:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "bytes32"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                                                    "value": "currencies"
                                                                                                                                                                },
                                                                                                                                                                "id": 4559,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "11173:10:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "value": "i"
                                                                                                                                                                },
                                                                                                                                                                "id": 4560,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "11184:1:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4561,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "11173:13:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4562,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "11159:28:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "hexvalue": "30",
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": true,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "subdenomination": null,
                                                                                                                                                    "token": "number",
                                                                                                                                                    "type": "int_const 0",
                                                                                                                                                    "value": "0"
                                                                                                                                                },
                                                                                                                                                "id": 4563,
                                                                                                                                                "name": "Literal",
                                                                                                                                                "src": "11189:1:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4564,
                                                                                                                                        "name": "BinaryOperation",
                                                                                                                                        "src": "11159:31:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "names": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "type": "tuple()",
                                                                                                                                                            "type_conversion": false
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": [
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                                                            "typeString": "address"
                                                                                                                                                                        },
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                                                            "typeString": "address"
                                                                                                                                                                        },
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                                                                                            "typeString": "bytes32"
                                                                                                                                                                        },
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                                        }
                                                                                                                                                                    ],
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "member_name": "payOut",
                                                                                                                                                                    "referencedDeclaration": 8426,
                                                                                                                                                                    "type": "function (address,address,bytes32,uint256) external"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 3637,
                                                                                                                                                                            "type": "contract ViaOracle",
                                                                                                                                                                            "value": "_oracle"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4565,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "11346:7:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 4567,
                                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                                "src": "11346:14:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "member_name": "depositor",
                                                                                                                                                                    "referencedDeclaration": 3645,
                                                                                                                                                                    "type": "address"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": true,
                                                                                                                                                                            "isPure": false,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                                                                                                        },
                                                                                                                                                                        "children": [
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                                    "isPure": false,
                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                                                },
                                                                                                                                                                                "children": [
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 3659,
                                                                                                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                                                            "value": "_deposits"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 4568,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "11361:9:15"
                                                                                                                                                                                    },
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                                                                                            "type": "address",
                                                                                                                                                                                            "value": "party"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 4569,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "11371:5:15"
                                                                                                                                                                                    }
                                                                                                                                                                                ],
                                                                                                                                                                                "id": 4570,
                                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                                "src": "11361:16:15"
                                                                                                                                                                            },
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                                    "isPure": false,
                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                    "type": "bytes32"
                                                                                                                                                                                },
                                                                                                                                                                                "children": [
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                                                                            "value": "currencies"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 4571,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "11378:10:15"
                                                                                                                                                                                    },
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                                                                            "type": "uint256",
                                                                                                                                                                                            "value": "i"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 4572,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "11389:1:15"
                                                                                                                                                                                    }
                                                                                                                                                                                ],
                                                                                                                                                                                "id": 4573,
                                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                                "src": "11378:13:15"
                                                                                                                                                                            }
                                                                                                                                                                        ],
                                                                                                                                                                        "id": 4574,
                                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                                        "src": "11361:31:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 4575,
                                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                                "src": "11361:41:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "party"
                                                                                                                                                                },
                                                                                                                                                                "id": 4576,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "11404:5:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "bytes32"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                                                            "value": "currencies"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4577,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "11411:10:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                                                            "type": "uint256",
                                                                                                                                                                            "value": "i"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4578,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "11422:1:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 4579,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "11411:13:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4342,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "value": "value"
                                                                                                                                                                },
                                                                                                                                                                "id": 4580,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "11426:5:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4581,
                                                                                                                                                        "name": "FunctionCall",
                                                                                                                                                        "src": "11346:86:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4582,
                                                                                                                                                "name": "ExpressionStatement",
                                                                                                                                                "src": "11346:86:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4583,
                                                                                                                                        "name": "Block",
                                                                                                                                        "src": "11191:269:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4584,
                                                                                                                                "name": "IfStatement",
                                                                                                                                "src": "11156:304:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4585,
                                                                                                                        "name": "IfStatement",
                                                                                                                        "src": "10588:872:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4586,
                                                                                                                "name": "IfStatement",
                                                                                                                "src": "10260:1200:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4587,
                                                                                                        "name": "IfStatement",
                                                                                                        "src": "10105:1355:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "isStructConstructorCall": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "type": "tuple()",
                                                                                                                    "type_conversion": false
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                    "typeString": "address"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                                    "typeString": "bytes32"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 3687,
                                                                                                                            "type": "function (address,bytes32,uint256,uint256,uint256)",
                                                                                                                            "value": "CashRedeemed"
                                                                                                                        },
                                                                                                                        "id": 4588,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "11533:12:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                            "type": "address",
                                                                                                                            "value": "party"
                                                                                                                        },
                                                                                                                        "id": 4589,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "11546:5:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "bytes32"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                    "value": "currencies"
                                                                                                                                },
                                                                                                                                "id": 4590,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "11553:10:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "i"
                                                                                                                                },
                                                                                                                                "id": 4591,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "11564:1:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4592,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "11553:13:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 4342,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "value"
                                                                                                                        },
                                                                                                                        "id": 4593,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "11568:5:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 4286,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "amount"
                                                                                                                        },
                                                                                                                        "id": 4594,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "11575:6:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "isStructConstructorCall": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "names": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "type": "uint256",
                                                                                                                            "type_conversion": false
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": [
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                            "typeString": "address"
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 12173,
                                                                                                                                    "type": "function (address) view returns (uint256)",
                                                                                                                                    "value": "balanceOf"
                                                                                                                                },
                                                                                                                                "id": 4595,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "11583:9:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "party"
                                                                                                                                },
                                                                                                                                "id": 4596,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "11593:5:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4597,
                                                                                                                        "name": "FunctionCall",
                                                                                                                        "src": "11583:16:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4598,
                                                                                                                "name": "FunctionCall",
                                                                                                                "src": "11533:67:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4599,
                                                                                                        "name": "EmitStatement",
                                                                                                        "src": "11528:72:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4600,
                                                                                                "name": "Block",
                                                                                                "src": "9830:1794:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "falseBody": null
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "commonType": {
                                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                                "typeString": "bytes32"
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "operator": "==",
                                                                                                            "type": "bool"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 4290,
                                                                                                                    "type": "bytes32",
                                                                                                                    "value": "operation"
                                                                                                                },
                                                                                                                "id": 4601,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "11654:9:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "hexvalue": "7472616e73666572",
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "subdenomination": null,
                                                                                                                    "token": "string",
                                                                                                                    "type": "literal_string \"transfer\"",
                                                                                                                    "value": "transfer"
                                                                                                                },
                                                                                                                "id": 4602,
                                                                                                                "name": "Literal",
                                                                                                                "src": "11665:10:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4603,
                                                                                                        "name": "BinaryOperation",
                                                                                                        "src": "11654:21:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "isStructConstructorCall": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "names": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "type": "tuple()",
                                                                                                                            "type_conversion": false
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": [
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                            "typeString": "address"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 12462,
                                                                                                                                    "type": "function (address,uint256)",
                                                                                                                                    "value": "_burn"
                                                                                                                                },
                                                                                                                                "id": 4604,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "11767:5:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "party"
                                                                                                                                },
                                                                                                                                "id": 4605,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "11773:5:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4286,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "amount"
                                                                                                                                },
                                                                                                                                "id": 4606,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "11780:6:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4607,
                                                                                                                        "name": "FunctionCall",
                                                                                                                        "src": "11767:20:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4608,
                                                                                                                "name": "ExpressionStatement",
                                                                                                                "src": "11767:20:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "operator": "=",
                                                                                                                            "type": "tuple()"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isInlineArray": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": true,
                                                                                                                                    "type": "tuple(uint256,uint256)"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4286,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "amount"
                                                                                                                                        },
                                                                                                                                        "id": 4609,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "11931:6:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4342,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "value"
                                                                                                                                        },
                                                                                                                                        "id": 4610,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "11939:5:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4611,
                                                                                                                                "name": "TupleExpression",
                                                                                                                                "src": "11930:15:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "type": "tuple(uint256,uint256)",
                                                                                                                                    "type_conversion": false
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                    "typeString": "address"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                                                    "typeString": "bytes32"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_stringliteral_b483afd3f4caedc6eebf44246fe54e38c95e3179a5ec9ea81740eca5b482d12e",
                                                                                                                                                    "typeString": "literal_string \"transfer\""
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 5595,
                                                                                                                                            "type": "function (address,uint256,uint256,bytes32,bytes32) returns (uint256,uint256)",
                                                                                                                                            "value": "payFee"
                                                                                                                                        },
                                                                                                                                        "id": 4612,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "11948:6:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "party"
                                                                                                                                        },
                                                                                                                                        "id": 4613,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "11955:5:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4286,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "amount"
                                                                                                                                        },
                                                                                                                                        "id": 4614,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "11962:6:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4342,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "value"
                                                                                                                                        },
                                                                                                                                        "id": 4615,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "11970:5:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "bytes32"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                                    "value": "currencies"
                                                                                                                                                },
                                                                                                                                                "id": 4616,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "11977:10:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                                    "type": "uint256",
                                                                                                                                                    "value": "i"
                                                                                                                                                },
                                                                                                                                                "id": 4617,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "11988:1:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4618,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "11977:13:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "hexvalue": "7472616e73666572",
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": true,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "subdenomination": null,
                                                                                                                                            "token": "string",
                                                                                                                                            "type": "literal_string \"transfer\"",
                                                                                                                                            "value": "transfer"
                                                                                                                                        },
                                                                                                                                        "id": 4619,
                                                                                                                                        "name": "Literal",
                                                                                                                                        "src": "11992:10:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4620,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "11948:55:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4621,
                                                                                                                        "name": "Assignment",
                                                                                                                        "src": "11930:73:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4622,
                                                                                                                "name": "ExpressionStatement",
                                                                                                                "src": "11930:73:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "isStructConstructorCall": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "names": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "type": "tuple()",
                                                                                                                            "type_conversion": false
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": [
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                            "typeString": "address"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 12418,
                                                                                                                                    "type": "function (address,uint256)",
                                                                                                                                    "value": "_mint"
                                                                                                                                },
                                                                                                                                "id": 4623,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "12095:5:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4292,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "receiver"
                                                                                                                                },
                                                                                                                                "id": 4624,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "12101:8:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4286,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "amount"
                                                                                                                                },
                                                                                                                                "id": 4625,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "12111:6:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4626,
                                                                                                                        "name": "FunctionCall",
                                                                                                                        "src": "12095:23:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4627,
                                                                                                                "name": "ExpressionStatement",
                                                                                                                "src": "12095:23:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "operator": "=",
                                                                                                                            "type": "uint256"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": true,
                                                                                                                                    "member_name": "depositAmount",
                                                                                                                                    "referencedDeclaration": 3641,
                                                                                                                                    "type": "uint256"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 3659,
                                                                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                            "value": "_deposits"
                                                                                                                                                        },
                                                                                                                                                        "id": 4628,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "12190:9:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 4292,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "receiver"
                                                                                                                                                        },
                                                                                                                                                        "id": 4629,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "12200:8:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4633,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "12190:19:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "bytes32"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                                            "value": "currencies"
                                                                                                                                                        },
                                                                                                                                                        "id": 4630,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "12210:10:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                                            "type": "uint256",
                                                                                                                                                            "value": "i"
                                                                                                                                                        },
                                                                                                                                                        "id": 4631,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "12221:1:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4632,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "12210:13:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4634,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "12190:34:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4635,
                                                                                                                                "name": "MemberAccess",
                                                                                                                                "src": "12190:48:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "type": "uint256",
                                                                                                                                    "type_conversion": false
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "member_name": "add",
                                                                                                                                            "referencedDeclaration": 10236,
                                                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 10483,
                                                                                                                                                    "type": "type(library Math)",
                                                                                                                                                    "value": "Math"
                                                                                                                                                },
                                                                                                                                                "id": 4636,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "12241:4:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4637,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "12241:8:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "member_name": "depositAmount",
                                                                                                                                            "referencedDeclaration": 3641,
                                                                                                                                            "type": "uint256"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "struct Cash.deposit storage ref"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                                    "value": "_deposits"
                                                                                                                                                                },
                                                                                                                                                                "id": 4638,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "12250:9:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4292,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "receiver"
                                                                                                                                                                },
                                                                                                                                                                "id": 4639,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "12260:8:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4640,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "12250:19:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "bytes32"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                                                    "value": "currencies"
                                                                                                                                                                },
                                                                                                                                                                "id": 4641,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "12270:10:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "value": "i"
                                                                                                                                                                },
                                                                                                                                                                "id": 4642,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "12281:1:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4643,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "12270:13:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4644,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "12250:34:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4645,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "12250:48:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4342,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "value"
                                                                                                                                        },
                                                                                                                                        "id": 4646,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "12300:5:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4647,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "12241:65:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4648,
                                                                                                                        "name": "Assignment",
                                                                                                                        "src": "12190:116:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4649,
                                                                                                                "name": "ExpressionStatement",
                                                                                                                "src": "12190:116:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "operator": "=",
                                                                                                                            "type": "uint256"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": true,
                                                                                                                                    "member_name": "issuedAmount",
                                                                                                                                    "referencedDeclaration": 3643,
                                                                                                                                    "type": "uint256"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 3659,
                                                                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                            "value": "_deposits"
                                                                                                                                                        },
                                                                                                                                                        "id": 4650,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "12384:9:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 4292,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "receiver"
                                                                                                                                                        },
                                                                                                                                                        "id": 4651,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "12394:8:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4655,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "12384:19:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "bytes32"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                                            "value": "currencies"
                                                                                                                                                        },
                                                                                                                                                        "id": 4652,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "12404:10:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                                            "type": "uint256",
                                                                                                                                                            "value": "i"
                                                                                                                                                        },
                                                                                                                                                        "id": 4653,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "12415:1:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4654,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "12404:13:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4656,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "12384:34:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4657,
                                                                                                                                "name": "MemberAccess",
                                                                                                                                "src": "12384:47:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "type": "uint256",
                                                                                                                                    "type_conversion": false
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "member_name": "add",
                                                                                                                                            "referencedDeclaration": 10236,
                                                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 10483,
                                                                                                                                                    "type": "type(library Math)",
                                                                                                                                                    "value": "Math"
                                                                                                                                                },
                                                                                                                                                "id": 4658,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "12434:4:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4659,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "12434:8:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "member_name": "issuedAmount",
                                                                                                                                            "referencedDeclaration": 3643,
                                                                                                                                            "type": "uint256"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "struct Cash.deposit storage ref"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                                    "value": "_deposits"
                                                                                                                                                                },
                                                                                                                                                                "id": 4660,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "12443:9:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4292,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "receiver"
                                                                                                                                                                },
                                                                                                                                                                "id": 4661,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "12453:8:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4662,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "12443:19:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "bytes32"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                                                    "value": "currencies"
                                                                                                                                                                },
                                                                                                                                                                "id": 4663,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "12463:10:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "value": "i"
                                                                                                                                                                },
                                                                                                                                                                "id": 4664,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "12474:1:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4665,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "12463:13:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4666,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "12443:34:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4667,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "12443:47:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4286,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "amount"
                                                                                                                                        },
                                                                                                                                        "id": 4668,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "12492:6:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4669,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "12434:65:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4670,
                                                                                                                        "name": "Assignment",
                                                                                                                        "src": "12384:115:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4671,
                                                                                                                "name": "ExpressionStatement",
                                                                                                                "src": "12384:115:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "operator": "=",
                                                                                                                            "type": "address"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": true,
                                                                                                                                    "member_name": "depositor",
                                                                                                                                    "referencedDeclaration": 3645,
                                                                                                                                    "type": "address"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 3659,
                                                                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                            "value": "_deposits"
                                                                                                                                                        },
                                                                                                                                                        "id": 4672,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "12591:9:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 4292,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "receiver"
                                                                                                                                                        },
                                                                                                                                                        "id": 4673,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "12601:8:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4677,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "12591:19:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "bytes32"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                                            "value": "currencies"
                                                                                                                                                        },
                                                                                                                                                        "id": 4674,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "12611:10:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                                            "type": "uint256",
                                                                                                                                                            "value": "i"
                                                                                                                                                        },
                                                                                                                                                        "id": 4675,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "12622:1:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4676,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "12611:13:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4678,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "12591:34:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4679,
                                                                                                                                "name": "MemberAccess",
                                                                                                                                "src": "12591:44:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "member_name": "depositor",
                                                                                                                                    "referencedDeclaration": 3645,
                                                                                                                                    "type": "address"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 3659,
                                                                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                            "value": "_deposits"
                                                                                                                                                        },
                                                                                                                                                        "id": 4680,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "12638:9:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "party"
                                                                                                                                                        },
                                                                                                                                                        "id": 4681,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "12648:5:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4682,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "12638:16:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "bytes32"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                                            "value": "currencies"
                                                                                                                                                        },
                                                                                                                                                        "id": 4683,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "12655:10:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                                            "type": "uint256",
                                                                                                                                                            "value": "i"
                                                                                                                                                        },
                                                                                                                                                        "id": 4684,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "12666:1:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4685,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "12655:13:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4686,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "12638:31:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4687,
                                                                                                                                "name": "MemberAccess",
                                                                                                                                "src": "12638:41:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4688,
                                                                                                                        "name": "Assignment",
                                                                                                                        "src": "12591:88:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4689,
                                                                                                                "name": "ExpressionStatement",
                                                                                                                "src": "12591:88:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "isStructConstructorCall": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "names": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "type": "tuple()",
                                                                                                                            "type_conversion": false
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": [
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                            "typeString": "address"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                            "typeString": "address"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                                                            "typeString": "bytes32"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 3707,
                                                                                                                                    "type": "function (address,address,bytes32,uint256,uint256)",
                                                                                                                                    "value": "CashTransfer"
                                                                                                                                },
                                                                                                                                "id": 4690,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "12711:12:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "party"
                                                                                                                                },
                                                                                                                                "id": 4691,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "12724:5:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4292,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "receiver"
                                                                                                                                },
                                                                                                                                "id": 4692,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "12731:8:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "bytes32"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                            "value": "currencies"
                                                                                                                                        },
                                                                                                                                        "id": 4693,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "12741:10:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "i"
                                                                                                                                        },
                                                                                                                                        "id": 4694,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "12752:1:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4695,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "12741:13:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4286,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "amount"
                                                                                                                                },
                                                                                                                                "id": 4696,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "12756:6:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4342,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "value"
                                                                                                                                },
                                                                                                                                "id": 4697,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "12764:5:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4698,
                                                                                                                        "name": "FunctionCall",
                                                                                                                        "src": "12711:59:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4699,
                                                                                                                "name": "EmitStatement",
                                                                                                                "src": "12706:64:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4700,
                                                                                                        "name": "Block",
                                                                                                        "src": "11676:1118:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4701,
                                                                                                "name": "IfStatement",
                                                                                                "src": "11651:1143:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4702,
                                                                                        "name": "IfStatement",
                                                                                        "src": "9807:2987:15"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "=",
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 4286,
                                                                                                            "type": "uint256",
                                                                                                            "value": "amount"
                                                                                                        },
                                                                                                        "id": 4703,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "12816:6:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "30",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "number",
                                                                                                            "type": "int_const 0",
                                                                                                            "value": "0"
                                                                                                        },
                                                                                                        "id": 4704,
                                                                                                        "name": "Literal",
                                                                                                        "src": "12825:1:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4705,
                                                                                                "name": "Assignment",
                                                                                                "src": "12816:10:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4706,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "12816:10:15"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "=",
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 4298,
                                                                                                            "type": "bool",
                                                                                                            "value": "found"
                                                                                                        },
                                                                                                        "id": 4707,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "12849:5:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "74727565",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "bool",
                                                                                                            "type": "bool",
                                                                                                            "value": "true"
                                                                                                        },
                                                                                                        "id": 4708,
                                                                                                        "name": "Literal",
                                                                                                        "src": "12857:4:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4709,
                                                                                                "name": "Assignment",
                                                                                                "src": "12849:12:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4710,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "12849:12:15"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "=",
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": true,
                                                                                                            "type": "bool"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 3711,
                                                                                                                    "type": "mapping(bytes32 => bool)",
                                                                                                                    "value": "_lock"
                                                                                                                },
                                                                                                                "id": 4711,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "12884:5:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "hexvalue": "72656465656d",
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "subdenomination": null,
                                                                                                                    "token": "string",
                                                                                                                    "type": "literal_string \"redeem\"",
                                                                                                                    "value": "redeem"
                                                                                                                },
                                                                                                                "id": 4712,
                                                                                                                "name": "Literal",
                                                                                                                "src": "12890:8:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4713,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "12884:15:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "66616c7365",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "bool",
                                                                                                            "type": "bool",
                                                                                                            "value": "false"
                                                                                                        },
                                                                                                        "id": 4714,
                                                                                                        "name": "Literal",
                                                                                                        "src": "12902:5:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4715,
                                                                                                "name": "Assignment",
                                                                                                "src": "12884:23:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4716,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "12884:23:15"
                                                                                    }
                                                                                ],
                                                                                "id": 4717,
                                                                                "name": "Block",
                                                                                "src": "9356:3571:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "falseBody": null
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "commonType": {
                                                                                                "typeIdentifier": "t_bool",
                                                                                                "typeString": "bool"
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "&&",
                                                                                            "type": "bool"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "commonType": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": ">",
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "member_name": "issuedAmount",
                                                                                                            "referencedDeclaration": 3643,
                                                                                                            "type": "uint256"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "struct Cash.deposit storage ref"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                    "value": "_deposits"
                                                                                                                                },
                                                                                                                                "id": 4718,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "13068:9:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "party"
                                                                                                                                },
                                                                                                                                "id": 4719,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "13078:5:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4720,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "13068:16:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "bytes32"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                    "value": "currencies"
                                                                                                                                },
                                                                                                                                "id": 4721,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "13085:10:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "i"
                                                                                                                                },
                                                                                                                                "id": 4722,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "13096:1:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4723,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "13085:13:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4724,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "13068:31:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4725,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "13068:44:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "30",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "number",
                                                                                                            "type": "int_const 0",
                                                                                                            "value": "0"
                                                                                                        },
                                                                                                        "id": 4726,
                                                                                                        "name": "Literal",
                                                                                                        "src": "13115:1:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4727,
                                                                                                "name": "BinaryOperation",
                                                                                                "src": "13068:48:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "commonType": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": ">",
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 4342,
                                                                                                            "type": "uint256",
                                                                                                            "value": "value"
                                                                                                        },
                                                                                                        "id": 4728,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "13120:5:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "30",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "number",
                                                                                                            "type": "int_const 0",
                                                                                                            "value": "0"
                                                                                                        },
                                                                                                        "id": 4729,
                                                                                                        "name": "Literal",
                                                                                                        "src": "13128:1:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4730,
                                                                                                "name": "BinaryOperation",
                                                                                                "src": "13120:9:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4731,
                                                                                        "name": "BinaryOperation",
                                                                                        "src": "13068:61:15"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "tuple()",
                                                                                                            "type_conversion": false
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_bool",
                                                                                                                            "typeString": "bool"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_stringliteral_a1bb289ca5093f725927da5725490b6088de689057901f6963d5358c4ab7c40a",
                                                                                                                            "typeString": "literal_string \"Lock on redemption\""
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        13010,
                                                                                                                        13011
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 13011,
                                                                                                                    "type": "function (bool,string memory) pure",
                                                                                                                    "value": "require"
                                                                                                                },
                                                                                                                "id": 4732,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "13185:7:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "operator": "!",
                                                                                                                    "prefix": true,
                                                                                                                    "type": "bool"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "bool"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 3711,
                                                                                                                                    "type": "mapping(bytes32 => bool)",
                                                                                                                                    "value": "_lock"
                                                                                                                                },
                                                                                                                                "id": 4733,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "13194:5:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "hexvalue": "72656465656d",
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": true,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "subdenomination": null,
                                                                                                                                    "token": "string",
                                                                                                                                    "type": "literal_string \"redeem\"",
                                                                                                                                    "value": "redeem"
                                                                                                                                },
                                                                                                                                "id": 4734,
                                                                                                                                "name": "Literal",
                                                                                                                                "src": "13200:8:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4735,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "13194:15:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4736,
                                                                                                                "name": "UnaryOperation",
                                                                                                                "src": "13193:16:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "hexvalue": "4c6f636b206f6e20726564656d7074696f6e",
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "subdenomination": null,
                                                                                                                    "token": "string",
                                                                                                                    "type": "literal_string \"Lock on redemption\"",
                                                                                                                    "value": "Lock on redemption"
                                                                                                                },
                                                                                                                "id": 4737,
                                                                                                                "name": "Literal",
                                                                                                                "src": "13211:20:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4738,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "13185:47:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4739,
                                                                                                "name": "ExpressionStatement",
                                                                                                "src": "13185:47:15"
                                                                                            },
                                                                                            {
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "operator": "=",
                                                                                                            "type": "bool"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": true,
                                                                                                                    "type": "bool"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 3711,
                                                                                                                            "type": "mapping(bytes32 => bool)",
                                                                                                                            "value": "_lock"
                                                                                                                        },
                                                                                                                        "id": 4740,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "13255:5:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "hexvalue": "72656465656d",
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": true,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "subdenomination": null,
                                                                                                                            "token": "string",
                                                                                                                            "type": "literal_string \"redeem\"",
                                                                                                                            "value": "redeem"
                                                                                                                        },
                                                                                                                        "id": 4741,
                                                                                                                        "name": "Literal",
                                                                                                                        "src": "13261:8:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4742,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "13255:15:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "hexvalue": "74727565",
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "subdenomination": null,
                                                                                                                    "token": "bool",
                                                                                                                    "type": "bool",
                                                                                                                    "value": "true"
                                                                                                                },
                                                                                                                "id": 4743,
                                                                                                                "name": "Literal",
                                                                                                                "src": "13273:4:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4744,
                                                                                                        "name": "Assignment",
                                                                                                        "src": "13255:22:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4745,
                                                                                                "name": "ExpressionStatement",
                                                                                                "src": "13255:22:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "assignments": [
                                                                                                        4747
                                                                                                    ]
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "constant": false,
                                                                                                            "name": "ref",
                                                                                                            "scope": 5099,
                                                                                                            "stateVariable": false,
                                                                                                            "storageLocation": "default",
                                                                                                            "type": "uint256",
                                                                                                            "value": null,
                                                                                                            "visibility": "internal"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "name": "uint256",
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "id": 4746,
                                                                                                                "name": "ElementaryTypeName",
                                                                                                                "src": "13310:7:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4747,
                                                                                                        "name": "VariableDeclaration",
                                                                                                        "src": "13310:11:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 4286,
                                                                                                            "type": "uint256",
                                                                                                            "value": "amount"
                                                                                                        },
                                                                                                        "id": 4748,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "13324:6:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4749,
                                                                                                "name": "VariableDeclarationStatement",
                                                                                                "src": "13310:20:15"
                                                                                            },
                                                                                            {
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "commonType": {
                                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                                "typeString": "bytes32"
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "operator": "==",
                                                                                                            "type": "bool"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 4290,
                                                                                                                    "type": "bytes32",
                                                                                                                    "value": "operation"
                                                                                                                },
                                                                                                                "id": 4750,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "13362:9:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "hexvalue": "72656465656d",
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "subdenomination": null,
                                                                                                                    "token": "string",
                                                                                                                    "type": "literal_string \"redeem\"",
                                                                                                                    "value": "redeem"
                                                                                                                },
                                                                                                                "id": 4751,
                                                                                                                "name": "Literal",
                                                                                                                "src": "13373:8:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4752,
                                                                                                        "name": "BinaryOperation",
                                                                                                        "src": "13362:19:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "isStructConstructorCall": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "names": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "type": "tuple()",
                                                                                                                            "type_conversion": false
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": [
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                            "typeString": "address"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 12462,
                                                                                                                                    "type": "function (address,uint256)",
                                                                                                                                    "value": "_burn"
                                                                                                                                },
                                                                                                                                "id": 4753,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "13457:5:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "party"
                                                                                                                                },
                                                                                                                                "id": 4754,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "13463:5:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "member_name": "issuedAmount",
                                                                                                                                    "referencedDeclaration": 3643,
                                                                                                                                    "type": "uint256"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 3659,
                                                                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                            "value": "_deposits"
                                                                                                                                                        },
                                                                                                                                                        "id": 4755,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "13470:9:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "party"
                                                                                                                                                        },
                                                                                                                                                        "id": 4756,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "13480:5:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4757,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "13470:16:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "bytes32"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                                            "value": "currencies"
                                                                                                                                                        },
                                                                                                                                                        "id": 4758,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "13487:10:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                                            "type": "uint256",
                                                                                                                                                            "value": "i"
                                                                                                                                                        },
                                                                                                                                                        "id": 4759,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "13498:1:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4760,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "13487:13:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4761,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "13470:31:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4762,
                                                                                                                                "name": "MemberAccess",
                                                                                                                                "src": "13470:44:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4763,
                                                                                                                        "name": "FunctionCall",
                                                                                                                        "src": "13457:58:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4764,
                                                                                                                "name": "ExpressionStatement",
                                                                                                                "src": "13457:58:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "operator": "=",
                                                                                                                            "type": "tuple()"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isInlineArray": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": true,
                                                                                                                                    "type": "tuple(uint256,uint256)"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4286,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "amount"
                                                                                                                                        },
                                                                                                                                        "id": 4765,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "13644:6:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4342,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "value"
                                                                                                                                        },
                                                                                                                                        "id": 4766,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "13652:5:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4767,
                                                                                                                                "name": "TupleExpression",
                                                                                                                                "src": "13643:15:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "type": "tuple(uint256,uint256)",
                                                                                                                                    "type_conversion": false
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                    "typeString": "address"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                                                    "typeString": "bytes32"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_stringliteral_014ab85ea8e748688cc6784b5e57ac1916c5079c4b0ea7171a3ee030794a44d0",
                                                                                                                                                    "typeString": "literal_string \"withdrawl\""
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 5595,
                                                                                                                                            "type": "function (address,uint256,uint256,bytes32,bytes32) returns (uint256,uint256)",
                                                                                                                                            "value": "payFee"
                                                                                                                                        },
                                                                                                                                        "id": 4768,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "13661:6:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "party"
                                                                                                                                        },
                                                                                                                                        "id": 4769,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "13668:5:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "member_name": "issuedAmount",
                                                                                                                                            "referencedDeclaration": 3643,
                                                                                                                                            "type": "uint256"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "struct Cash.deposit storage ref"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                                    "value": "_deposits"
                                                                                                                                                                },
                                                                                                                                                                "id": 4770,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "13675:9:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "party"
                                                                                                                                                                },
                                                                                                                                                                "id": 4771,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "13685:5:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4772,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "13675:16:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "bytes32"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                                                    "value": "currencies"
                                                                                                                                                                },
                                                                                                                                                                "id": 4773,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "13692:10:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "value": "i"
                                                                                                                                                                },
                                                                                                                                                                "id": 4774,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "13703:1:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4775,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "13692:13:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4776,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "13675:31:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4777,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "13675:44:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "member_name": "depositAmount",
                                                                                                                                            "referencedDeclaration": 3641,
                                                                                                                                            "type": "uint256"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "struct Cash.deposit storage ref"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                                    "value": "_deposits"
                                                                                                                                                                },
                                                                                                                                                                "id": 4778,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "13721:9:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "party"
                                                                                                                                                                },
                                                                                                                                                                "id": 4779,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "13731:5:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4780,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "13721:16:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "bytes32"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                                                    "value": "currencies"
                                                                                                                                                                },
                                                                                                                                                                "id": 4781,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "13738:10:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "value": "i"
                                                                                                                                                                },
                                                                                                                                                                "id": 4782,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "13749:1:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4783,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "13738:13:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4784,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "13721:31:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4785,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "13721:45:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "bytes32"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                                    "value": "currencies"
                                                                                                                                                },
                                                                                                                                                "id": 4786,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "13768:10:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                                    "type": "uint256",
                                                                                                                                                    "value": "i"
                                                                                                                                                },
                                                                                                                                                "id": 4787,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "13779:1:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4788,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "13768:13:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "hexvalue": "77697468647261776c",
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": true,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "subdenomination": null,
                                                                                                                                            "token": "string",
                                                                                                                                            "type": "literal_string \"withdrawl\"",
                                                                                                                                            "value": "withdrawl"
                                                                                                                                        },
                                                                                                                                        "id": 4789,
                                                                                                                                        "name": "Literal",
                                                                                                                                        "src": "13783:11:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4790,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "13661:134:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4791,
                                                                                                                        "name": "Assignment",
                                                                                                                        "src": "13643:152:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4792,
                                                                                                                "name": "ExpressionStatement",
                                                                                                                "src": "13643:152:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "commonType": {
                                                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                                                "typeString": "bytes32"
                                                                                                                            },
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "operator": "==",
                                                                                                                            "type": "bool"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "bytes32"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                            "value": "currencies"
                                                                                                                                        },
                                                                                                                                        "id": 4793,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "13951:10:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "i"
                                                                                                                                        },
                                                                                                                                        "id": 4794,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "13962:1:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4795,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "13951:13:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "hexvalue": "6574686572",
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": true,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "subdenomination": null,
                                                                                                                                    "token": "string",
                                                                                                                                    "type": "literal_string \"ether\"",
                                                                                                                                    "value": "ether"
                                                                                                                                },
                                                                                                                                "id": 4796,
                                                                                                                                "name": "Literal",
                                                                                                                                "src": "13966:7:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4797,
                                                                                                                        "name": "BinaryOperation",
                                                                                                                        "src": "13951:22:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "names": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "type": "tuple()",
                                                                                                                                            "type_conversion": false
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": [
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                        }
                                                                                                                                                    ],
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "member_name": "transfer",
                                                                                                                                                    "referencedDeclaration": null,
                                                                                                                                                    "type": "function (uint256)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "names": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "type": "address payable",
                                                                                                                                                            "type_conversion": true
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": [
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_uint160",
                                                                                                                                                                            "typeString": "uint160"
                                                                                                                                                                        }
                                                                                                                                                                    ],
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": true,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "type(address)",
                                                                                                                                                                    "value": "address"
                                                                                                                                                                },
                                                                                                                                                                "id": 4798,
                                                                                                                                                                "name": "ElementaryTypeNameExpression",
                                                                                                                                                                "src": "14009:7:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "names": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "type": "uint160",
                                                                                                                                                                    "type_conversion": true
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                                {
                                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                                }
                                                                                                                                                                            ],
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": false,
                                                                                                                                                                            "isPure": true,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "type": "type(uint160)",
                                                                                                                                                                            "value": "uint160"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4799,
                                                                                                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                                                                                                        "src": "14017:7:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "party"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4800,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "14025:5:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 4801,
                                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                                "src": "14017:14:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4802,
                                                                                                                                                        "name": "FunctionCall",
                                                                                                                                                        "src": "14009:23:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4803,
                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                "src": "14009:32:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 4342,
                                                                                                                                                    "type": "uint256",
                                                                                                                                                    "value": "value"
                                                                                                                                                },
                                                                                                                                                "id": 4804,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "14042:5:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4805,
                                                                                                                                        "name": "FunctionCall",
                                                                                                                                        "src": "14009:39:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4806,
                                                                                                                                "name": "ExpressionStatement",
                                                                                                                                "src": "14009:39:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4807,
                                                                                                                        "name": "Block",
                                                                                                                        "src": "13974:102:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "commonType": {
                                                                                                                                        "typeIdentifier": "t_bool",
                                                                                                                                        "typeString": "bool"
                                                                                                                                    },
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "operator": "==",
                                                                                                                                    "type": "bool"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "names": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "type": "bool",
                                                                                                                                            "type_conversion": false
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": [
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                                                                            "typeString": "bytes32"
                                                                                                                                                        }
                                                                                                                                                    ],
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "member_name": "checkSupportForToken",
                                                                                                                                                    "referencedDeclaration": 8394,
                                                                                                                                                    "type": "function (bytes32) view external returns (bool)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 3633,
                                                                                                                                                            "type": "contract ViaFactory",
                                                                                                                                                            "value": "_factory"
                                                                                                                                                        },
                                                                                                                                                        "id": 4808,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "14110:8:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4809,
                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                "src": "14110:29:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "bytes32"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                                            "value": "currencies"
                                                                                                                                                        },
                                                                                                                                                        "id": 4810,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "14140:10:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                                            "type": "uint256",
                                                                                                                                                            "value": "i"
                                                                                                                                                        },
                                                                                                                                                        "id": 4811,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "14151:1:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4812,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "14140:13:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4813,
                                                                                                                                        "name": "FunctionCall",
                                                                                                                                        "src": "14110:44:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "hexvalue": "74727565",
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": true,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "subdenomination": null,
                                                                                                                                            "token": "bool",
                                                                                                                                            "type": "bool",
                                                                                                                                            "value": "true"
                                                                                                                                        },
                                                                                                                                        "id": 4814,
                                                                                                                                        "name": "Literal",
                                                                                                                                        "src": "14156:4:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4815,
                                                                                                                                "name": "BinaryOperation",
                                                                                                                                "src": "14110:50:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "assignments": [
                                                                                                                                                4817
                                                                                                                                            ]
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "constant": false,
                                                                                                                                                    "name": "token",
                                                                                                                                                    "scope": 4833,
                                                                                                                                                    "stateVariable": false,
                                                                                                                                                    "storageLocation": "default",
                                                                                                                                                    "type": "address",
                                                                                                                                                    "value": null,
                                                                                                                                                    "visibility": "internal"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "name": "address",
                                                                                                                                                            "stateMutability": "nonpayable",
                                                                                                                                                            "type": "address"
                                                                                                                                                        },
                                                                                                                                                        "id": 4816,
                                                                                                                                                        "name": "ElementaryTypeName",
                                                                                                                                                        "src": "14247:7:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4817,
                                                                                                                                                "name": "VariableDeclaration",
                                                                                                                                                "src": "14247:13:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "names": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "type": "address",
                                                                                                                                                    "type_conversion": false
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                                                                    "typeString": "bytes32"
                                                                                                                                                                }
                                                                                                                                                            ],
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "member_name": "getCurrencyToken",
                                                                                                                                                            "referencedDeclaration": 8401,
                                                                                                                                                            "type": "function (bytes32) view external returns (address)"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3633,
                                                                                                                                                                    "type": "contract ViaFactory",
                                                                                                                                                                    "value": "_factory"
                                                                                                                                                                },
                                                                                                                                                                "id": 4818,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "14263:8:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4819,
                                                                                                                                                        "name": "MemberAccess",
                                                                                                                                                        "src": "14263:25:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "bytes32"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                                                    "value": "currencies"
                                                                                                                                                                },
                                                                                                                                                                "id": 4820,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "14289:10:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "value": "i"
                                                                                                                                                                },
                                                                                                                                                                "id": 4821,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "14300:1:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4822,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "14289:13:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4823,
                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                "src": "14263:40:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4824,
                                                                                                                                        "name": "VariableDeclarationStatement",
                                                                                                                                        "src": "14247:56:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "names": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "type": "bool",
                                                                                                                                                    "type_conversion": false
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                },
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                                }
                                                                                                                                                            ],
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "member_name": "transfer",
                                                                                                                                                            "referencedDeclaration": 363,
                                                                                                                                                            "type": "function (address,uint256) external returns (bool)"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "names": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "type": "contract IERC20",
                                                                                                                                                                    "type_conversion": true
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                                {
                                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                                }
                                                                                                                                                                            ],
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 409,
                                                                                                                                                                            "type": "type(contract IERC20)",
                                                                                                                                                                            "value": "IERC20"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4825,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "14334:6:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 4817,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "token"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4826,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "14341:5:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 4827,
                                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                                "src": "14334:13:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4828,
                                                                                                                                                        "name": "MemberAccess",
                                                                                                                                                        "src": "14334:22:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "party"
                                                                                                                                                        },
                                                                                                                                                        "id": 4829,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "14357:5:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 4342,
                                                                                                                                                            "type": "uint256",
                                                                                                                                                            "value": "value"
                                                                                                                                                        },
                                                                                                                                                        "id": 4830,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "14364:5:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4831,
                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                "src": "14334:36:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4832,
                                                                                                                                        "name": "ExpressionStatement",
                                                                                                                                        "src": "14334:36:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4833,
                                                                                                                                "name": "Block",
                                                                                                                                "src": "14161:237:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "commonType": {
                                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                                "typeString": "address"
                                                                                                                                            },
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "operator": "!=",
                                                                                                                                            "type": "bool"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "names": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "type": "address",
                                                                                                                                                    "type_conversion": false
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                                                                    "typeString": "bytes32"
                                                                                                                                                                },
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                                                                                    "typeString": "literal_string \"ViaCash\""
                                                                                                                                                                }
                                                                                                                                                            ],
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "member_name": "getTokenByNameType",
                                                                                                                                                            "referencedDeclaration": 8276,
                                                                                                                                                            "type": "function (bytes32,bytes32) view external returns (address)"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3633,
                                                                                                                                                                    "type": "contract ViaFactory",
                                                                                                                                                                    "value": "_factory"
                                                                                                                                                                },
                                                                                                                                                                "id": 4834,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "14432:8:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4835,
                                                                                                                                                        "name": "MemberAccess",
                                                                                                                                                        "src": "14432:27:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "bytes32"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                                                    "value": "currencies"
                                                                                                                                                                },
                                                                                                                                                                "id": 4836,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "14460:10:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "value": "i"
                                                                                                                                                                },
                                                                                                                                                                "id": 4837,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "14471:1:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4838,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "14460:13:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "hexvalue": "56696143617368",
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": true,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "subdenomination": null,
                                                                                                                                                            "token": "string",
                                                                                                                                                            "type": "literal_string \"ViaCash\"",
                                                                                                                                                            "value": "ViaCash"
                                                                                                                                                        },
                                                                                                                                                        "id": 4839,
                                                                                                                                                        "name": "Literal",
                                                                                                                                                        "src": "14475:9:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4840,
                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                "src": "14432:53:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": true,
                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "names": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "type": "address payable",
                                                                                                                                                    "type_conversion": true
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                                                                                                                    "typeString": "int_const 0"
                                                                                                                                                                }
                                                                                                                                                            ],
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": true,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "type(address)",
                                                                                                                                                            "value": "address"
                                                                                                                                                        },
                                                                                                                                                        "id": 4841,
                                                                                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                                                                                        "src": "14487:7:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "hexvalue": "307830",
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": true,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "subdenomination": null,
                                                                                                                                                            "token": "number",
                                                                                                                                                            "type": "int_const 0",
                                                                                                                                                            "value": "0x0"
                                                                                                                                                        },
                                                                                                                                                        "id": 4842,
                                                                                                                                                        "name": "Literal",
                                                                                                                                                        "src": "14495:3:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4843,
                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                "src": "14487:12:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4844,
                                                                                                                                        "name": "BinaryOperation",
                                                                                                                                        "src": "14432:67:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "assignments": [
                                                                                                                                                        4846
                                                                                                                                                    ]
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "constant": false,
                                                                                                                                                            "name": "cashToken",
                                                                                                                                                            "scope": 4878,
                                                                                                                                                            "stateVariable": false,
                                                                                                                                                            "storageLocation": "default",
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": null,
                                                                                                                                                            "visibility": "internal"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "name": "address",
                                                                                                                                                                    "stateMutability": "nonpayable",
                                                                                                                                                                    "type": "address"
                                                                                                                                                                },
                                                                                                                                                                "id": 4845,
                                                                                                                                                                "name": "ElementaryTypeName",
                                                                                                                                                                "src": "14600:7:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4846,
                                                                                                                                                        "name": "VariableDeclaration",
                                                                                                                                                        "src": "14600:17:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "names": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "type": "address",
                                                                                                                                                            "type_conversion": false
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": [
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                                                                                            "typeString": "bytes32"
                                                                                                                                                                        },
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                                                                                            "typeString": "literal_string \"ViaCash\""
                                                                                                                                                                        }
                                                                                                                                                                    ],
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "member_name": "getTokenByNameType",
                                                                                                                                                                    "referencedDeclaration": 8276,
                                                                                                                                                                    "type": "function (bytes32,bytes32) view external returns (address)"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 3633,
                                                                                                                                                                            "type": "contract ViaFactory",
                                                                                                                                                                            "value": "_factory"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4847,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "14620:8:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 4848,
                                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                                "src": "14620:27:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "bytes32"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                                                            "value": "currencies"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4849,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "14648:10:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                                                            "type": "uint256",
                                                                                                                                                                            "value": "i"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4850,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "14659:1:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 4851,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "14648:13:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "hexvalue": "56696143617368",
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": true,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "subdenomination": null,
                                                                                                                                                                    "token": "string",
                                                                                                                                                                    "type": "literal_string \"ViaCash\"",
                                                                                                                                                                    "value": "ViaCash"
                                                                                                                                                                },
                                                                                                                                                                "id": 4852,
                                                                                                                                                                "name": "Literal",
                                                                                                                                                                "src": "14662:9:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4853,
                                                                                                                                                        "name": "FunctionCall",
                                                                                                                                                        "src": "14620:52:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4854,
                                                                                                                                                "name": "VariableDeclarationStatement",
                                                                                                                                                "src": "14600:72:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "commonType": {
                                                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                                                "typeString": "address"
                                                                                                                                                            },
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "operator": "==",
                                                                                                                                                            "type": "bool"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4846,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "cashToken"
                                                                                                                                                                },
                                                                                                                                                                "id": 4855,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "14706:9:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "names": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "type": "address payable",
                                                                                                                                                                    "type_conversion": true
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                                {
                                                                                                                                                                                    "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                                                                                                                    "typeString": "contract Cash"
                                                                                                                                                                                }
                                                                                                                                                                            ],
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": false,
                                                                                                                                                                            "isPure": true,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "type": "type(address)",
                                                                                                                                                                            "value": "address"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4856,
                                                                                                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                                                                                                        "src": "14717:7:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 13077,
                                                                                                                                                                            "type": "contract Cash",
                                                                                                                                                                            "value": "this"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4857,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "14725:4:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 4858,
                                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                                "src": "14717:13:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4859,
                                                                                                                                                        "name": "BinaryOperation",
                                                                                                                                                        "src": "14706:24:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "names": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "type_conversion": false
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                                {
                                                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                                                },
                                                                                                                                                                                {
                                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                                }
                                                                                                                                                                            ],
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 5278,
                                                                                                                                                                            "type": "function (uint256,address) returns (uint256)",
                                                                                                                                                                            "value": "deductFromBalance"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4860,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "14765:17:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 4342,
                                                                                                                                                                            "type": "uint256",
                                                                                                                                                                            "value": "value"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4861,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "14783:5:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "party"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4862,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "14790:5:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 4863,
                                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                                "src": "14765:31:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4864,
                                                                                                                                                        "name": "ExpressionStatement",
                                                                                                                                                        "src": "14765:31:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "names": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "type_conversion": false
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                                {
                                                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                                                },
                                                                                                                                                                                {
                                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                                }
                                                                                                                                                                            ],
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": false,
                                                                                                                                                                            "isPure": false,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "member_name": "requestDeductFromBalance",
                                                                                                                                                                            "referencedDeclaration": 5222,
                                                                                                                                                                            "type": "function (uint256,address) external returns (uint256)"
                                                                                                                                                                        },
                                                                                                                                                                        "children": [
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                                    "isPure": false,
                                                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                    "names": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "type": "contract Cash",
                                                                                                                                                                                    "type_conversion": true
                                                                                                                                                                                },
                                                                                                                                                                                "children": [
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                                                {
                                                                                                                                                                                                    "typeIdentifier": "t_address_payable",
                                                                                                                                                                                                    "typeString": "address payable"
                                                                                                                                                                                                }
                                                                                                                                                                                            ],
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 5750,
                                                                                                                                                                                            "type": "type(contract Cash)",
                                                                                                                                                                                            "value": "Cash"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 4865,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "14865:4:15"
                                                                                                                                                                                    },
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                                            "isLValue": false,
                                                                                                                                                                                            "isPure": false,
                                                                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                                            "names": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "type": "address payable",
                                                                                                                                                                                            "type_conversion": true
                                                                                                                                                                                        },
                                                                                                                                                                                        "children": [
                                                                                                                                                                                            {
                                                                                                                                                                                                "attributes": {
                                                                                                                                                                                                    "argumentTypes": [
                                                                                                                                                                                                        {
                                                                                                                                                                                                            "typeIdentifier": "t_uint160",
                                                                                                                                                                                                            "typeString": "uint160"
                                                                                                                                                                                                        }
                                                                                                                                                                                                    ],
                                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                                                    "isPure": true,
                                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                                    "type": "type(address)",
                                                                                                                                                                                                    "value": "address"
                                                                                                                                                                                                },
                                                                                                                                                                                                "id": 4866,
                                                                                                                                                                                                "name": "ElementaryTypeNameExpression",
                                                                                                                                                                                                "src": "14870:7:15"
                                                                                                                                                                                            },
                                                                                                                                                                                            {
                                                                                                                                                                                                "attributes": {
                                                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                                                    "isPure": false,
                                                                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                                    "names": [
                                                                                                                                                                                                        null
                                                                                                                                                                                                    ],
                                                                                                                                                                                                    "type": "uint160",
                                                                                                                                                                                                    "type_conversion": true
                                                                                                                                                                                                },
                                                                                                                                                                                                "children": [
                                                                                                                                                                                                    {
                                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                                                                {
                                                                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                                                                }
                                                                                                                                                                                                            ],
                                                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                                                            "isLValue": false,
                                                                                                                                                                                                            "isPure": true,
                                                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                                                            "type": "type(uint160)",
                                                                                                                                                                                                            "value": "uint160"
                                                                                                                                                                                                        },
                                                                                                                                                                                                        "id": 4867,
                                                                                                                                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                                                                                                                                        "src": "14878:7:15"
                                                                                                                                                                                                    },
                                                                                                                                                                                                    {
                                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                                null
                                                                                                                                                                                                            ],
                                                                                                                                                                                                            "referencedDeclaration": 4846,
                                                                                                                                                                                                            "type": "address",
                                                                                                                                                                                                            "value": "cashToken"
                                                                                                                                                                                                        },
                                                                                                                                                                                                        "id": 4868,
                                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                                        "src": "14886:9:15"
                                                                                                                                                                                                    }
                                                                                                                                                                                                ],
                                                                                                                                                                                                "id": 4869,
                                                                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                                                                "src": "14878:18:15"
                                                                                                                                                                                            }
                                                                                                                                                                                        ],
                                                                                                                                                                                        "id": 4870,
                                                                                                                                                                                        "name": "FunctionCall",
                                                                                                                                                                                        "src": "14870:27:15"
                                                                                                                                                                                    }
                                                                                                                                                                                ],
                                                                                                                                                                                "id": 4871,
                                                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                                                "src": "14865:33:15"
                                                                                                                                                                            }
                                                                                                                                                                        ],
                                                                                                                                                                        "id": 4872,
                                                                                                                                                                        "name": "MemberAccess",
                                                                                                                                                                        "src": "14865:58:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 4342,
                                                                                                                                                                            "type": "uint256",
                                                                                                                                                                            "value": "value"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4873,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "14924:5:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "party"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4874,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "14931:5:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 4875,
                                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                                "src": "14865:72:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4876,
                                                                                                                                                        "name": "ExpressionStatement",
                                                                                                                                                        "src": "14865:72:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4877,
                                                                                                                                                "name": "IfStatement",
                                                                                                                                                "src": "14703:234:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4878,
                                                                                                                                        "name": "Block",
                                                                                                                                        "src": "14500:465:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "falseBody": null
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "commonType": {
                                                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                                                        "typeString": "uint256"
                                                                                                                                                    },
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "operator": "!=",
                                                                                                                                                    "type": "bool"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "uint256"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3653,
                                                                                                                                                                    "type": "mapping(bytes32 => uint256)",
                                                                                                                                                                    "value": "currencyIndex"
                                                                                                                                                                },
                                                                                                                                                                "id": 4879,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "15004:13:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "bytes32"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                                                            "value": "currencies"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4880,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "15018:10:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                                                            "type": "uint256",
                                                                                                                                                                            "value": "i"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4881,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "15029:1:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 4882,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "15018:13:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4883,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "15004:28:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "hexvalue": "30",
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": true,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "subdenomination": null,
                                                                                                                                                            "token": "number",
                                                                                                                                                            "type": "int_const 0",
                                                                                                                                                            "value": "0"
                                                                                                                                                        },
                                                                                                                                                        "id": 4884,
                                                                                                                                                        "name": "Literal",
                                                                                                                                                        "src": "15034:1:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4885,
                                                                                                                                                "name": "BinaryOperation",
                                                                                                                                                "src": "15004:31:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "names": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "type": "tuple()",
                                                                                                                                                                    "type_conversion": false
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                                {
                                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                                },
                                                                                                                                                                                {
                                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                                },
                                                                                                                                                                                {
                                                                                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                                                                                    "typeString": "bytes32"
                                                                                                                                                                                },
                                                                                                                                                                                {
                                                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                                                }
                                                                                                                                                                            ],
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": false,
                                                                                                                                                                            "isPure": false,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "member_name": "payOut",
                                                                                                                                                                            "referencedDeclaration": 8426,
                                                                                                                                                                            "type": "function (address,address,bytes32,uint256) external"
                                                                                                                                                                        },
                                                                                                                                                                        "children": [
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "referencedDeclaration": 3637,
                                                                                                                                                                                    "type": "contract ViaOracle",
                                                                                                                                                                                    "value": "_oracle"
                                                                                                                                                                                },
                                                                                                                                                                                "id": 4886,
                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                "src": "15191:7:15"
                                                                                                                                                                            }
                                                                                                                                                                        ],
                                                                                                                                                                        "id": 4888,
                                                                                                                                                                        "name": "MemberAccess",
                                                                                                                                                                        "src": "15191:14:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": true,
                                                                                                                                                                            "isPure": false,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "member_name": "depositor",
                                                                                                                                                                            "referencedDeclaration": 3645,
                                                                                                                                                                            "type": "address"
                                                                                                                                                                        },
                                                                                                                                                                        "children": [
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                                    "isPure": false,
                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                    "type": "struct Cash.deposit storage ref"
                                                                                                                                                                                },
                                                                                                                                                                                "children": [
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                                            "isLValue": true,
                                                                                                                                                                                            "isPure": false,
                                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                                                        },
                                                                                                                                                                                        "children": [
                                                                                                                                                                                            {
                                                                                                                                                                                                "attributes": {
                                                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                                        null
                                                                                                                                                                                                    ],
                                                                                                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                                                                    "value": "_deposits"
                                                                                                                                                                                                },
                                                                                                                                                                                                "id": 4889,
                                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                                "src": "15206:9:15"
                                                                                                                                                                                            },
                                                                                                                                                                                            {
                                                                                                                                                                                                "attributes": {
                                                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                                        null
                                                                                                                                                                                                    ],
                                                                                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                                                                                    "type": "address",
                                                                                                                                                                                                    "value": "party"
                                                                                                                                                                                                },
                                                                                                                                                                                                "id": 4890,
                                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                                "src": "15216:5:15"
                                                                                                                                                                                            }
                                                                                                                                                                                        ],
                                                                                                                                                                                        "id": 4891,
                                                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                                                        "src": "15206:16:15"
                                                                                                                                                                                    },
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                                            "isLValue": true,
                                                                                                                                                                                            "isPure": false,
                                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                                            "type": "bytes32"
                                                                                                                                                                                        },
                                                                                                                                                                                        "children": [
                                                                                                                                                                                            {
                                                                                                                                                                                                "attributes": {
                                                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                                        null
                                                                                                                                                                                                    ],
                                                                                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                                                                                    "value": "currencies"
                                                                                                                                                                                                },
                                                                                                                                                                                                "id": 4892,
                                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                                "src": "15223:10:15"
                                                                                                                                                                                            },
                                                                                                                                                                                            {
                                                                                                                                                                                                "attributes": {
                                                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                                        null
                                                                                                                                                                                                    ],
                                                                                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                                                    "value": "i"
                                                                                                                                                                                                },
                                                                                                                                                                                                "id": 4893,
                                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                                "src": "15234:1:15"
                                                                                                                                                                                            }
                                                                                                                                                                                        ],
                                                                                                                                                                                        "id": 4894,
                                                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                                                        "src": "15223:13:15"
                                                                                                                                                                                    }
                                                                                                                                                                                ],
                                                                                                                                                                                "id": 4895,
                                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                                "src": "15206:31:15"
                                                                                                                                                                            }
                                                                                                                                                                        ],
                                                                                                                                                                        "id": 4896,
                                                                                                                                                                        "name": "MemberAccess",
                                                                                                                                                                        "src": "15206:41:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "party"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4897,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "15249:5:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": true,
                                                                                                                                                                            "isPure": false,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "type": "bytes32"
                                                                                                                                                                        },
                                                                                                                                                                        "children": [
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                                                                    "value": "currencies"
                                                                                                                                                                                },
                                                                                                                                                                                "id": 4898,
                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                "src": "15256:10:15"
                                                                                                                                                                            },
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                                    "value": "i"
                                                                                                                                                                                },
                                                                                                                                                                                "id": 4899,
                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                "src": "15267:1:15"
                                                                                                                                                                            }
                                                                                                                                                                        ],
                                                                                                                                                                        "id": 4900,
                                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                                        "src": "15256:13:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 4342,
                                                                                                                                                                            "type": "uint256",
                                                                                                                                                                            "value": "value"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4901,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "15271:5:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 4902,
                                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                                "src": "15191:86:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4903,
                                                                                                                                                        "name": "ExpressionStatement",
                                                                                                                                                        "src": "15191:86:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4904,
                                                                                                                                                "name": "Block",
                                                                                                                                                "src": "15036:269:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4905,
                                                                                                                                        "name": "IfStatement",
                                                                                                                                        "src": "15001:304:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4906,
                                                                                                                                "name": "IfStatement",
                                                                                                                                "src": "14429:876:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4907,
                                                                                                                        "name": "IfStatement",
                                                                                                                        "src": "14107:1198:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4908,
                                                                                                                "name": "IfStatement",
                                                                                                                "src": "13948:1357:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "isStructConstructorCall": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "names": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "type": "tuple()",
                                                                                                                            "type_conversion": false
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": [
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                            "typeString": "address"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                                                            "typeString": "bytes32"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 3687,
                                                                                                                                    "type": "function (address,bytes32,uint256,uint256,uint256)",
                                                                                                                                    "value": "CashRedeemed"
                                                                                                                                },
                                                                                                                                "id": 4909,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "15393:12:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "party"
                                                                                                                                },
                                                                                                                                "id": 4910,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "15406:5:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "bytes32"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                            "value": "currencies"
                                                                                                                                        },
                                                                                                                                        "id": 4911,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "15413:10:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "i"
                                                                                                                                        },
                                                                                                                                        "id": 4912,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "15424:1:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4913,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "15413:13:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 4342,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "value"
                                                                                                                                },
                                                                                                                                "id": 4914,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "15428:5:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "member_name": "issuedAmount",
                                                                                                                                    "referencedDeclaration": 3643,
                                                                                                                                    "type": "uint256"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 3659,
                                                                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                            "value": "_deposits"
                                                                                                                                                        },
                                                                                                                                                        "id": 4915,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "15435:9:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "party"
                                                                                                                                                        },
                                                                                                                                                        "id": 4916,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "15445:5:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4917,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "15435:16:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "bytes32"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                                            "value": "currencies"
                                                                                                                                                        },
                                                                                                                                                        "id": 4918,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "15452:10:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                                            "type": "uint256",
                                                                                                                                                            "value": "i"
                                                                                                                                                        },
                                                                                                                                                        "id": 4919,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "15463:1:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4920,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "15452:13:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4921,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "15435:31:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4922,
                                                                                                                                "name": "MemberAccess",
                                                                                                                                "src": "15435:44:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "type": "uint256",
                                                                                                                                    "type_conversion": false
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                    "typeString": "address"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 12173,
                                                                                                                                            "type": "function (address) view returns (uint256)",
                                                                                                                                            "value": "balanceOf"
                                                                                                                                        },
                                                                                                                                        "id": 4923,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "15481:9:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "party"
                                                                                                                                        },
                                                                                                                                        "id": 4924,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "15491:5:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4925,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "15481:16:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4926,
                                                                                                                        "name": "FunctionCall",
                                                                                                                        "src": "15393:105:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4927,
                                                                                                                "name": "EmitStatement",
                                                                                                                "src": "15388:110:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4928,
                                                                                                        "name": "Block",
                                                                                                        "src": "13382:2140:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "falseBody": null
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "commonType": {
                                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                                        "typeString": "bytes32"
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "operator": "==",
                                                                                                                    "type": "bool"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 4290,
                                                                                                                            "type": "bytes32",
                                                                                                                            "value": "operation"
                                                                                                                        },
                                                                                                                        "id": 4929,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "15552:9:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "hexvalue": "7472616e73666572",
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": true,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "subdenomination": null,
                                                                                                                            "token": "string",
                                                                                                                            "type": "literal_string \"transfer\"",
                                                                                                                            "value": "transfer"
                                                                                                                        },
                                                                                                                        "id": 4930,
                                                                                                                        "name": "Literal",
                                                                                                                        "src": "15563:10:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 4931,
                                                                                                                "name": "BinaryOperation",
                                                                                                                "src": "15552:21:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "type": "tuple()",
                                                                                                                                    "type_conversion": false
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                    "typeString": "address"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 12462,
                                                                                                                                            "type": "function (address,uint256)",
                                                                                                                                            "value": "_burn"
                                                                                                                                        },
                                                                                                                                        "id": 4932,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "15665:5:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "party"
                                                                                                                                        },
                                                                                                                                        "id": 4933,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "15671:5:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "member_name": "issuedAmount",
                                                                                                                                            "referencedDeclaration": 3643,
                                                                                                                                            "type": "uint256"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "struct Cash.deposit storage ref"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                                    "value": "_deposits"
                                                                                                                                                                },
                                                                                                                                                                "id": 4934,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "15678:9:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "party"
                                                                                                                                                                },
                                                                                                                                                                "id": 4935,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "15688:5:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4936,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "15678:16:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "bytes32"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                                                    "value": "currencies"
                                                                                                                                                                },
                                                                                                                                                                "id": 4937,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "15695:10:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "value": "i"
                                                                                                                                                                },
                                                                                                                                                                "id": 4938,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "15706:1:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4939,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "15695:13:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4940,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "15678:31:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4941,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "15678:44:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4942,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "15665:58:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4943,
                                                                                                                        "name": "ExpressionStatement",
                                                                                                                        "src": "15665:58:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "operator": "=",
                                                                                                                                    "type": "tuple()"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isInlineArray": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": true,
                                                                                                                                            "type": "tuple(uint256,uint256)"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 4286,
                                                                                                                                                    "type": "uint256",
                                                                                                                                                    "value": "amount"
                                                                                                                                                },
                                                                                                                                                "id": 4944,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "15866:6:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 4342,
                                                                                                                                                    "type": "uint256",
                                                                                                                                                    "value": "value"
                                                                                                                                                },
                                                                                                                                                "id": 4945,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "15874:5:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4946,
                                                                                                                                        "name": "TupleExpression",
                                                                                                                                        "src": "15865:15:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "names": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "type": "tuple(uint256,uint256)",
                                                                                                                                            "type_conversion": false
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": [
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                                            "typeString": "address"
                                                                                                                                                        },
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                        },
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                        },
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                                                                            "typeString": "bytes32"
                                                                                                                                                        },
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_stringliteral_b483afd3f4caedc6eebf44246fe54e38c95e3179a5ec9ea81740eca5b482d12e",
                                                                                                                                                            "typeString": "literal_string \"transfer\""
                                                                                                                                                        }
                                                                                                                                                    ],
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 5595,
                                                                                                                                                    "type": "function (address,uint256,uint256,bytes32,bytes32) returns (uint256,uint256)",
                                                                                                                                                    "value": "payFee"
                                                                                                                                                },
                                                                                                                                                "id": 4947,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "15883:6:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                                    "type": "address",
                                                                                                                                                    "value": "party"
                                                                                                                                                },
                                                                                                                                                "id": 4948,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "15890:5:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "member_name": "issuedAmount",
                                                                                                                                                    "referencedDeclaration": 3643,
                                                                                                                                                    "type": "uint256"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 3659,
                                                                                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                                            "value": "_deposits"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4949,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "15897:9:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "party"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4950,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "15907:5:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 4951,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "15897:16:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "bytes32"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                                                            "value": "currencies"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4952,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "15914:10:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                                                            "type": "uint256",
                                                                                                                                                                            "value": "i"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4953,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "15925:1:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 4954,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "15914:13:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4955,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "15897:31:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4956,
                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                "src": "15897:44:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "member_name": "depositAmount",
                                                                                                                                                    "referencedDeclaration": 3641,
                                                                                                                                                    "type": "uint256"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 3659,
                                                                                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                                            "value": "_deposits"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4957,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "15943:9:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "party"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4958,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "15953:5:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 4959,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "15943:16:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "bytes32"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                                                            "value": "currencies"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4960,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "15960:10:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                                                            "type": "uint256",
                                                                                                                                                                            "value": "i"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4961,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "15971:1:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 4962,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "15960:13:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4963,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "15943:31:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4964,
                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                "src": "15943:45:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "bytes32"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                                            "value": "currencies"
                                                                                                                                                        },
                                                                                                                                                        "id": 4965,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "15990:10:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                                            "type": "uint256",
                                                                                                                                                            "value": "i"
                                                                                                                                                        },
                                                                                                                                                        "id": 4966,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "16001:1:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4967,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "15990:13:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "hexvalue": "7472616e73666572",
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": true,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "subdenomination": null,
                                                                                                                                                    "token": "string",
                                                                                                                                                    "type": "literal_string \"transfer\"",
                                                                                                                                                    "value": "transfer"
                                                                                                                                                },
                                                                                                                                                "id": 4968,
                                                                                                                                                "name": "Literal",
                                                                                                                                                "src": "16005:10:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4969,
                                                                                                                                        "name": "FunctionCall",
                                                                                                                                        "src": "15883:133:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4970,
                                                                                                                                "name": "Assignment",
                                                                                                                                "src": "15865:151:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4971,
                                                                                                                        "name": "ExpressionStatement",
                                                                                                                        "src": "15865:151:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "type": "tuple()",
                                                                                                                                    "type_conversion": false
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                    "typeString": "address"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 12418,
                                                                                                                                            "type": "function (address,uint256)",
                                                                                                                                            "value": "_mint"
                                                                                                                                        },
                                                                                                                                        "id": 4972,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "16088:5:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4292,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "receiver"
                                                                                                                                        },
                                                                                                                                        "id": 4973,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "16094:8:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4286,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "amount"
                                                                                                                                        },
                                                                                                                                        "id": 4974,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "16104:6:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4975,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "16088:23:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4976,
                                                                                                                        "name": "ExpressionStatement",
                                                                                                                        "src": "16088:23:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "operator": "=",
                                                                                                                                    "type": "uint256"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": true,
                                                                                                                                            "member_name": "depositAmount",
                                                                                                                                            "referencedDeclaration": 3641,
                                                                                                                                            "type": "uint256"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "struct Cash.deposit storage ref"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                                    "value": "_deposits"
                                                                                                                                                                },
                                                                                                                                                                "id": 4977,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "16183:9:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4292,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "receiver"
                                                                                                                                                                },
                                                                                                                                                                "id": 4978,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "16193:8:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4982,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "16183:19:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "bytes32"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                                                    "value": "currencies"
                                                                                                                                                                },
                                                                                                                                                                "id": 4979,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "16203:10:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "value": "i"
                                                                                                                                                                },
                                                                                                                                                                "id": 4980,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "16214:1:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4981,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "16203:13:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4983,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "16183:34:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4984,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "16183:48:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "names": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "type": "uint256",
                                                                                                                                            "type_conversion": false
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": [
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                        },
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                        }
                                                                                                                                                    ],
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "member_name": "add",
                                                                                                                                                    "referencedDeclaration": 10236,
                                                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 10483,
                                                                                                                                                            "type": "type(library Math)",
                                                                                                                                                            "value": "Math"
                                                                                                                                                        },
                                                                                                                                                        "id": 4985,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "16234:4:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4986,
                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                "src": "16234:8:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "member_name": "depositAmount",
                                                                                                                                                    "referencedDeclaration": 3641,
                                                                                                                                                    "type": "uint256"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 3659,
                                                                                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                                            "value": "_deposits"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4987,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "16243:9:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 4292,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "receiver"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4988,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "16253:8:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 4989,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "16243:19:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "bytes32"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                                                            "value": "currencies"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4990,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "16263:10:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                                                            "type": "uint256",
                                                                                                                                                                            "value": "i"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 4991,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "16274:1:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 4992,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "16263:13:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 4993,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "16243:34:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 4994,
                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                "src": "16243:48:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 4342,
                                                                                                                                                    "type": "uint256",
                                                                                                                                                    "value": "value"
                                                                                                                                                },
                                                                                                                                                "id": 4995,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "16293:5:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 4996,
                                                                                                                                        "name": "FunctionCall",
                                                                                                                                        "src": "16234:65:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 4997,
                                                                                                                                "name": "Assignment",
                                                                                                                                "src": "16183:116:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 4998,
                                                                                                                        "name": "ExpressionStatement",
                                                                                                                        "src": "16183:116:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "operator": "=",
                                                                                                                                    "type": "uint256"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": true,
                                                                                                                                            "member_name": "issuedAmount",
                                                                                                                                            "referencedDeclaration": 3643,
                                                                                                                                            "type": "uint256"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "struct Cash.deposit storage ref"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                                    "value": "_deposits"
                                                                                                                                                                },
                                                                                                                                                                "id": 4999,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "16377:9:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4292,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "receiver"
                                                                                                                                                                },
                                                                                                                                                                "id": 5000,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "16387:8:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 5004,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "16377:19:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "bytes32"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                                                    "value": "currencies"
                                                                                                                                                                },
                                                                                                                                                                "id": 5001,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "16397:10:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "value": "i"
                                                                                                                                                                },
                                                                                                                                                                "id": 5002,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "16408:1:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 5003,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "16397:13:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 5005,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "16377:34:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 5006,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "16377:47:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "names": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "type": "uint256",
                                                                                                                                            "type_conversion": false
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": [
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                        },
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                        }
                                                                                                                                                    ],
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "member_name": "add",
                                                                                                                                                    "referencedDeclaration": 10236,
                                                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 10483,
                                                                                                                                                            "type": "type(library Math)",
                                                                                                                                                            "value": "Math"
                                                                                                                                                        },
                                                                                                                                                        "id": 5007,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "16427:4:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 5008,
                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                "src": "16427:8:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "member_name": "issuedAmount",
                                                                                                                                                    "referencedDeclaration": 3643,
                                                                                                                                                    "type": "uint256"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 3659,
                                                                                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                                            "value": "_deposits"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 5009,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "16436:9:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 4292,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "receiver"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 5010,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "16446:8:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 5011,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "16436:19:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "bytes32"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                                                            "value": "currencies"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 5012,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "16456:10:15"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                                                            "type": "uint256",
                                                                                                                                                                            "value": "i"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 5013,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "16467:1:15"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 5014,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "16456:13:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 5015,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "16436:34:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 5016,
                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                "src": "16436:47:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 4286,
                                                                                                                                                    "type": "uint256",
                                                                                                                                                    "value": "amount"
                                                                                                                                                },
                                                                                                                                                "id": 5017,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "16485:6:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 5018,
                                                                                                                                        "name": "FunctionCall",
                                                                                                                                        "src": "16427:65:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 5019,
                                                                                                                                "name": "Assignment",
                                                                                                                                "src": "16377:115:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 5020,
                                                                                                                        "name": "ExpressionStatement",
                                                                                                                        "src": "16377:115:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "operator": "=",
                                                                                                                                    "type": "address"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": true,
                                                                                                                                            "member_name": "depositor",
                                                                                                                                            "referencedDeclaration": 3645,
                                                                                                                                            "type": "address"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "struct Cash.deposit storage ref"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                                    "value": "_deposits"
                                                                                                                                                                },
                                                                                                                                                                "id": 5021,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "16564:9:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4292,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "receiver"
                                                                                                                                                                },
                                                                                                                                                                "id": 5022,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "16574:8:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 5026,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "16564:19:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "bytes32"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                                                    "value": "currencies"
                                                                                                                                                                },
                                                                                                                                                                "id": 5023,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "16584:10:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "value": "i"
                                                                                                                                                                },
                                                                                                                                                                "id": 5024,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "16595:1:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 5025,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "16584:13:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 5027,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "16564:34:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 5028,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "16564:44:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "member_name": "depositor",
                                                                                                                                            "referencedDeclaration": 3645,
                                                                                                                                            "type": "address"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "struct Cash.deposit storage ref"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                                    "value": "_deposits"
                                                                                                                                                                },
                                                                                                                                                                "id": 5029,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "16611:9:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "party"
                                                                                                                                                                },
                                                                                                                                                                "id": 5030,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "16621:5:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 5031,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "16611:16:15"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "bytes32"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                                                    "value": "currencies"
                                                                                                                                                                },
                                                                                                                                                                "id": 5032,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "16628:10:15"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "value": "i"
                                                                                                                                                                },
                                                                                                                                                                "id": 5033,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "16639:1:15"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 5034,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "16628:13:15"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 5035,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "16611:31:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 5036,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "16611:41:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 5037,
                                                                                                                                "name": "Assignment",
                                                                                                                                "src": "16564:88:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 5038,
                                                                                                                        "name": "ExpressionStatement",
                                                                                                                        "src": "16564:88:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "type": "tuple()",
                                                                                                                                    "type_conversion": false
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                    "typeString": "address"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                    "typeString": "address"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                                                    "typeString": "bytes32"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 3707,
                                                                                                                                            "type": "function (address,address,bytes32,uint256,uint256)",
                                                                                                                                            "value": "CashTransfer"
                                                                                                                                        },
                                                                                                                                        "id": 5039,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "16684:12:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "party"
                                                                                                                                        },
                                                                                                                                        "id": 5040,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "16697:5:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4292,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "receiver"
                                                                                                                                        },
                                                                                                                                        "id": 5041,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "16704:8:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "bytes32"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                                    "value": "currencies"
                                                                                                                                                },
                                                                                                                                                "id": 5042,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "16714:10:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                                    "type": "uint256",
                                                                                                                                                    "value": "i"
                                                                                                                                                },
                                                                                                                                                "id": 5043,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "16725:1:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 5044,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "16714:13:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4286,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "amount"
                                                                                                                                        },
                                                                                                                                        "id": 5045,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "16729:6:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4342,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "value"
                                                                                                                                        },
                                                                                                                                        "id": 5046,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "16737:5:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 5047,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "16684:59:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 5048,
                                                                                                                        "name": "EmitStatement",
                                                                                                                        "src": "16679:64:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 5049,
                                                                                                                "name": "Block",
                                                                                                                "src": "15574:1193:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5050,
                                                                                                        "name": "IfStatement",
                                                                                                        "src": "15549:1218:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5051,
                                                                                                "name": "IfStatement",
                                                                                                "src": "13359:3408:15"
                                                                                            },
                                                                                            {
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "operator": "=",
                                                                                                            "type": "uint256"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 4286,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "amount"
                                                                                                                },
                                                                                                                "id": 5052,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "16861:6:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "isStructConstructorCall": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "type": "uint256",
                                                                                                                    "type_conversion": false
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "member_name": "sub",
                                                                                                                            "referencedDeclaration": 10300,
                                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 10483,
                                                                                                                                    "type": "type(library Math)",
                                                                                                                                    "value": "Math"
                                                                                                                                },
                                                                                                                                "id": 5053,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "16870:4:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 5054,
                                                                                                                        "name": "MemberAccess",
                                                                                                                        "src": "16870:8:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 4747,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "ref"
                                                                                                                        },
                                                                                                                        "id": 5055,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "16879:3:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "member_name": "issuedAmount",
                                                                                                                            "referencedDeclaration": 3643,
                                                                                                                            "type": "uint256"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "struct Cash.deposit storage ref"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                                    "value": "_deposits"
                                                                                                                                                },
                                                                                                                                                "id": 5056,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "16884:9:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 4288,
                                                                                                                                                    "type": "address",
                                                                                                                                                    "value": "party"
                                                                                                                                                },
                                                                                                                                                "id": 5057,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "16894:5:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 5058,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "16884:16:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "bytes32"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 3649,
                                                                                                                                                    "type": "bytes32[] storage ref",
                                                                                                                                                    "value": "currencies"
                                                                                                                                                },
                                                                                                                                                "id": 5059,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "16901:10:15"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 4307,
                                                                                                                                                    "type": "uint256",
                                                                                                                                                    "value": "i"
                                                                                                                                                },
                                                                                                                                                "id": 5060,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "16912:1:15"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 5061,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "16901:13:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 5062,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "16884:31:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 5063,
                                                                                                                        "name": "MemberAccess",
                                                                                                                        "src": "16884:44:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 5064,
                                                                                                                "name": "FunctionCall",
                                                                                                                "src": "16870:59:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5065,
                                                                                                        "name": "Assignment",
                                                                                                        "src": "16861:68:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5066,
                                                                                                "name": "ExpressionStatement",
                                                                                                "src": "16861:68:15"
                                                                                            },
                                                                                            {
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "operator": "=",
                                                                                                            "type": "uint256"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": true,
                                                                                                                    "member_name": "depositAmount",
                                                                                                                    "referencedDeclaration": 3641,
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 3659,
                                                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                            "value": "_deposits"
                                                                                                                                        },
                                                                                                                                        "id": 5067,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "17020:9:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "party"
                                                                                                                                        },
                                                                                                                                        "id": 5068,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "17030:5:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 5072,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "17020:16:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "bytes32"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                            "value": "currencies"
                                                                                                                                        },
                                                                                                                                        "id": 5069,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "17037:10:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "i"
                                                                                                                                        },
                                                                                                                                        "id": 5070,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "17048:1:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 5071,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "17037:13:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 5073,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "17020:31:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 5074,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "17020:45:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "hexvalue": "30",
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "subdenomination": null,
                                                                                                                    "token": "number",
                                                                                                                    "type": "int_const 0",
                                                                                                                    "value": "0"
                                                                                                                },
                                                                                                                "id": 5075,
                                                                                                                "name": "Literal",
                                                                                                                "src": "17068:1:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5076,
                                                                                                        "name": "Assignment",
                                                                                                        "src": "17020:49:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5077,
                                                                                                "name": "ExpressionStatement",
                                                                                                "src": "17020:49:15"
                                                                                            },
                                                                                            {
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "operator": "=",
                                                                                                            "type": "uint256"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": true,
                                                                                                                    "member_name": "issuedAmount",
                                                                                                                    "referencedDeclaration": 3643,
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 3659,
                                                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                                            "value": "_deposits"
                                                                                                                                        },
                                                                                                                                        "id": 5078,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "17108:9:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4288,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "party"
                                                                                                                                        },
                                                                                                                                        "id": 5079,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "17118:5:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 5083,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "17108:16:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "bytes32"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 3649,
                                                                                                                                            "type": "bytes32[] storage ref",
                                                                                                                                            "value": "currencies"
                                                                                                                                        },
                                                                                                                                        "id": 5080,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "17125:10:15"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4307,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "i"
                                                                                                                                        },
                                                                                                                                        "id": 5081,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "17136:1:15"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 5082,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "17125:13:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 5084,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "17108:31:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 5085,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "17108:44:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "hexvalue": "30",
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "subdenomination": null,
                                                                                                                    "token": "number",
                                                                                                                    "type": "int_const 0",
                                                                                                                    "value": "0"
                                                                                                                },
                                                                                                                "id": 5086,
                                                                                                                "name": "Literal",
                                                                                                                "src": "17155:1:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5087,
                                                                                                        "name": "Assignment",
                                                                                                        "src": "17108:48:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5088,
                                                                                                "name": "ExpressionStatement",
                                                                                                "src": "17108:48:15"
                                                                                            },
                                                                                            {
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "operator": "=",
                                                                                                            "type": "bool"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 4298,
                                                                                                                    "type": "bool",
                                                                                                                    "value": "found"
                                                                                                                },
                                                                                                                "id": 5089,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "17179:5:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "hexvalue": "74727565",
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "subdenomination": null,
                                                                                                                    "token": "bool",
                                                                                                                    "type": "bool",
                                                                                                                    "value": "true"
                                                                                                                },
                                                                                                                "id": 5090,
                                                                                                                "name": "Literal",
                                                                                                                "src": "17187:4:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5091,
                                                                                                        "name": "Assignment",
                                                                                                        "src": "17179:12:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5092,
                                                                                                "name": "ExpressionStatement",
                                                                                                "src": "17179:12:15"
                                                                                            },
                                                                                            {
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "operator": "=",
                                                                                                            "type": "bool"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": true,
                                                                                                                    "type": "bool"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 3711,
                                                                                                                            "type": "mapping(bytes32 => bool)",
                                                                                                                            "value": "_lock"
                                                                                                                        },
                                                                                                                        "id": 5093,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "17214:5:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "hexvalue": "72656465656d",
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": true,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "subdenomination": null,
                                                                                                                            "token": "string",
                                                                                                                            "type": "literal_string \"redeem\"",
                                                                                                                            "value": "redeem"
                                                                                                                        },
                                                                                                                        "id": 5094,
                                                                                                                        "name": "Literal",
                                                                                                                        "src": "17220:8:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 5095,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "17214:15:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "hexvalue": "66616c7365",
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "subdenomination": null,
                                                                                                                    "token": "bool",
                                                                                                                    "type": "bool",
                                                                                                                    "value": "false"
                                                                                                                },
                                                                                                                "id": 5096,
                                                                                                                "name": "Literal",
                                                                                                                "src": "17232:5:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5097,
                                                                                                        "name": "Assignment",
                                                                                                        "src": "17214:23:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5098,
                                                                                                "name": "ExpressionStatement",
                                                                                                "src": "17214:23:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5099,
                                                                                        "name": "Block",
                                                                                        "src": "13130:4127:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5100,
                                                                                "name": "IfStatement",
                                                                                "src": "13065:4192:15"
                                                                            }
                                                                        ],
                                                                        "id": 5101,
                                                                        "name": "IfStatement",
                                                                        "src": "9227:8030:15"
                                                                    }
                                                                ],
                                                                "id": 5102,
                                                                "name": "Block",
                                                                "src": "8906:8366:15"
                                                            }
                                                        ],
                                                        "id": 5103,
                                                        "name": "IfStatement",
                                                        "src": "8802:8470:15"
                                                    }
                                                ],
                                                "id": 5104,
                                                "name": "Block",
                                                "src": "8784:8499:15"
                                            }
                                        ],
                                        "id": 5105,
                                        "name": "ForStatement",
                                        "src": "8744:8539:15"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 4296
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 4298,
                                                    "type": "bool",
                                                    "value": "found"
                                                },
                                                "id": 5106,
                                                "name": "Identifier",
                                                "src": "17300:5:15"
                                            }
                                        ],
                                        "id": 5107,
                                        "name": "Return",
                                        "src": "17293:12:15"
                                    }
                                ],
                                "id": 5108,
                                "name": "Block",
                                "src": "8662:8651:15"
                            }
                        ],
                        "id": 5109,
                        "name": "FunctionDefinition",
                        "src": "8557:8756:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "burnCashTokens",
                            "scope": 5750,
                            "stateMutability": "nonpayable",
                            "superFunction": 8211,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 5188,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5110,
                                                "name": "ElementaryTypeName",
                                                "src": "17345:7:15"
                                            }
                                        ],
                                        "id": 5111,
                                        "name": "VariableDeclaration",
                                        "src": "17345:14:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "party",
                                            "scope": 5188,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5112,
                                                "name": "ElementaryTypeName",
                                                "src": "17361:7:15"
                                            }
                                        ],
                                        "id": 5113,
                                        "name": "VariableDeclaration",
                                        "src": "17361:13:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "currency",
                                            "scope": 5188,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 5114,
                                                "name": "ElementaryTypeName",
                                                "src": "17376:7:15"
                                            }
                                        ],
                                        "id": 5115,
                                        "name": "VariableDeclaration",
                                        "src": "17376:16:15"
                                    }
                                ],
                                "id": 5116,
                                "name": "ParameterList",
                                "src": "17344:49:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5188,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 5121,
                                                "name": "ElementaryTypeName",
                                                "src": "17437:4:15"
                                            }
                                        ],
                                        "id": 5122,
                                        "name": "VariableDeclaration",
                                        "src": "17437:4:15"
                                    }
                                ],
                                "id": 5123,
                                "name": "ParameterList",
                                "src": "17436:6:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 3665,
                                            "type": "modifier (address)",
                                            "value": "onlyCustodian"
                                        },
                                        "id": 5117,
                                        "name": "Identifier",
                                        "src": "17394:13:15"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "referencedDeclaration": null,
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 13007,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 5118,
                                                "name": "Identifier",
                                                "src": "17408:3:15"
                                            }
                                        ],
                                        "id": 5119,
                                        "name": "MemberAccess",
                                        "src": "17408:10:15"
                                    }
                                ],
                                "id": 5120,
                                "name": "ModifierInvocation",
                                "src": "17394:25:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                5125
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "value",
                                                    "scope": 5187,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 5124,
                                                        "name": "ElementaryTypeName",
                                                        "src": "17453:7:15"
                                                    }
                                                ],
                                                "id": 5125,
                                                "name": "VariableDeclaration",
                                                "src": "17453:13:15"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "mulDown",
                                                            "referencedDeclaration": 8604,
                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8909,
                                                                    "type": "type(library FixedPoint)",
                                                                    "value": "FixedPoint"
                                                                },
                                                                "id": 5126,
                                                                "name": "Identifier",
                                                                "src": "17469:10:15"
                                                            }
                                                        ],
                                                        "id": 5127,
                                                        "name": "MemberAccess",
                                                        "src": "17469:18:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "divDown",
                                                                    "referencedDeclaration": 8695,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8909,
                                                                            "type": "type(library FixedPoint)",
                                                                            "value": "FixedPoint"
                                                                        },
                                                                        "id": 5128,
                                                                        "name": "Identifier",
                                                                        "src": "17488:10:15"
                                                                    }
                                                                ],
                                                                "id": 5129,
                                                                "name": "MemberAccess",
                                                                "src": "17488:18:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5111,
                                                                    "type": "uint256",
                                                                    "value": "amount"
                                                                },
                                                                "id": 5130,
                                                                "name": "Identifier",
                                                                "src": "17507:6:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "issuedAmount",
                                                                    "referencedDeclaration": 3643,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct Cash.deposit storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3659,
                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                            "value": "_deposits"
                                                                                        },
                                                                                        "id": 5131,
                                                                                        "name": "Identifier",
                                                                                        "src": "17515:9:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5113,
                                                                                            "type": "address",
                                                                                            "value": "party"
                                                                                        },
                                                                                        "id": 5132,
                                                                                        "name": "Identifier",
                                                                                        "src": "17525:5:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5133,
                                                                                "name": "IndexAccess",
                                                                                "src": "17515:16:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5115,
                                                                                    "type": "bytes32",
                                                                                    "value": "currency"
                                                                                },
                                                                                "id": 5134,
                                                                                "name": "Identifier",
                                                                                "src": "17532:8:15"
                                                                            }
                                                                        ],
                                                                        "id": 5135,
                                                                        "name": "IndexAccess",
                                                                        "src": "17515:26:15"
                                                                    }
                                                                ],
                                                                "id": 5136,
                                                                "name": "MemberAccess",
                                                                "src": "17515:39:15"
                                                            }
                                                        ],
                                                        "id": 5137,
                                                        "name": "FunctionCall",
                                                        "src": "17488:67:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "depositAmount",
                                                            "referencedDeclaration": 3641,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct Cash.deposit storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3659,
                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                    "value": "_deposits"
                                                                                },
                                                                                "id": 5138,
                                                                                "name": "Identifier",
                                                                                "src": "17557:9:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5113,
                                                                                    "type": "address",
                                                                                    "value": "party"
                                                                                },
                                                                                "id": 5139,
                                                                                "name": "Identifier",
                                                                                "src": "17567:5:15"
                                                                            }
                                                                        ],
                                                                        "id": 5140,
                                                                        "name": "IndexAccess",
                                                                        "src": "17557:16:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5115,
                                                                            "type": "bytes32",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 5141,
                                                                        "name": "Identifier",
                                                                        "src": "17574:8:15"
                                                                    }
                                                                ],
                                                                "id": 5142,
                                                                "name": "IndexAccess",
                                                                "src": "17557:26:15"
                                                            }
                                                        ],
                                                        "id": 5143,
                                                        "name": "MemberAccess",
                                                        "src": "17557:40:15"
                                                    }
                                                ],
                                                "id": 5144,
                                                "name": "FunctionCall",
                                                "src": "17469:129:15"
                                            }
                                        ],
                                        "id": 5145,
                                        "name": "VariableDeclarationStatement",
                                        "src": "17453:145:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "member_name": "depositAmount",
                                                            "referencedDeclaration": 3641,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct Cash.deposit storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3659,
                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                    "value": "_deposits"
                                                                                },
                                                                                "id": 5146,
                                                                                "name": "Identifier",
                                                                                "src": "17609:9:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5113,
                                                                                    "type": "address",
                                                                                    "value": "party"
                                                                                },
                                                                                "id": 5147,
                                                                                "name": "Identifier",
                                                                                "src": "17619:5:15"
                                                                            }
                                                                        ],
                                                                        "id": 5149,
                                                                        "name": "IndexAccess",
                                                                        "src": "17609:16:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5115,
                                                                            "type": "bytes32",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 5148,
                                                                        "name": "Identifier",
                                                                        "src": "17626:8:15"
                                                                    }
                                                                ],
                                                                "id": 5150,
                                                                "name": "IndexAccess",
                                                                "src": "17609:26:15"
                                                            }
                                                        ],
                                                        "id": 5151,
                                                        "name": "MemberAccess",
                                                        "src": "17609:40:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sub",
                                                                    "referencedDeclaration": 10300,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10483,
                                                                            "type": "type(library Math)",
                                                                            "value": "Math"
                                                                        },
                                                                        "id": 5152,
                                                                        "name": "Identifier",
                                                                        "src": "17652:4:15"
                                                                    }
                                                                ],
                                                                "id": 5153,
                                                                "name": "MemberAccess",
                                                                "src": "17652:8:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "depositAmount",
                                                                    "referencedDeclaration": 3641,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct Cash.deposit storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3659,
                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                            "value": "_deposits"
                                                                                        },
                                                                                        "id": 5154,
                                                                                        "name": "Identifier",
                                                                                        "src": "17661:9:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5113,
                                                                                            "type": "address",
                                                                                            "value": "party"
                                                                                        },
                                                                                        "id": 5155,
                                                                                        "name": "Identifier",
                                                                                        "src": "17671:5:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5156,
                                                                                "name": "IndexAccess",
                                                                                "src": "17661:16:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5115,
                                                                                    "type": "bytes32",
                                                                                    "value": "currency"
                                                                                },
                                                                                "id": 5157,
                                                                                "name": "Identifier",
                                                                                "src": "17678:8:15"
                                                                            }
                                                                        ],
                                                                        "id": 5158,
                                                                        "name": "IndexAccess",
                                                                        "src": "17661:26:15"
                                                                    }
                                                                ],
                                                                "id": 5159,
                                                                "name": "MemberAccess",
                                                                "src": "17661:40:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5125,
                                                                    "type": "uint256",
                                                                    "value": "value"
                                                                },
                                                                "id": 5160,
                                                                "name": "Identifier",
                                                                "src": "17703:5:15"
                                                            }
                                                        ],
                                                        "id": 5161,
                                                        "name": "FunctionCall",
                                                        "src": "17652:57:15"
                                                    }
                                                ],
                                                "id": 5162,
                                                "name": "Assignment",
                                                "src": "17609:100:15"
                                            }
                                        ],
                                        "id": 5163,
                                        "name": "ExpressionStatement",
                                        "src": "17609:100:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 12462,
                                                            "type": "function (address,uint256)",
                                                            "value": "_burn"
                                                        },
                                                        "id": 5164,
                                                        "name": "Identifier",
                                                        "src": "17748:5:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5113,
                                                            "type": "address",
                                                            "value": "party"
                                                        },
                                                        "id": 5165,
                                                        "name": "Identifier",
                                                        "src": "17754:5:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5111,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 5166,
                                                        "name": "Identifier",
                                                        "src": "17761:6:15"
                                                    }
                                                ],
                                                "id": 5167,
                                                "name": "FunctionCall",
                                                "src": "17748:20:15"
                                            }
                                        ],
                                        "id": 5168,
                                        "name": "ExpressionStatement",
                                        "src": "17748:20:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "member_name": "issuedAmount",
                                                            "referencedDeclaration": 3643,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct Cash.deposit storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3659,
                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                    "value": "_deposits"
                                                                                },
                                                                                "id": 5169,
                                                                                "name": "Identifier",
                                                                                "src": "17779:9:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5113,
                                                                                    "type": "address",
                                                                                    "value": "party"
                                                                                },
                                                                                "id": 5170,
                                                                                "name": "Identifier",
                                                                                "src": "17789:5:15"
                                                                            }
                                                                        ],
                                                                        "id": 5172,
                                                                        "name": "IndexAccess",
                                                                        "src": "17779:16:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5115,
                                                                            "type": "bytes32",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 5171,
                                                                        "name": "Identifier",
                                                                        "src": "17796:8:15"
                                                                    }
                                                                ],
                                                                "id": 5173,
                                                                "name": "IndexAccess",
                                                                "src": "17779:26:15"
                                                            }
                                                        ],
                                                        "id": 5174,
                                                        "name": "MemberAccess",
                                                        "src": "17779:39:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sub",
                                                                    "referencedDeclaration": 10300,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10483,
                                                                            "type": "type(library Math)",
                                                                            "value": "Math"
                                                                        },
                                                                        "id": 5175,
                                                                        "name": "Identifier",
                                                                        "src": "17821:4:15"
                                                                    }
                                                                ],
                                                                "id": 5176,
                                                                "name": "MemberAccess",
                                                                "src": "17821:8:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "issuedAmount",
                                                                    "referencedDeclaration": 3643,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct Cash.deposit storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3659,
                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                            "value": "_deposits"
                                                                                        },
                                                                                        "id": 5177,
                                                                                        "name": "Identifier",
                                                                                        "src": "17830:9:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5113,
                                                                                            "type": "address",
                                                                                            "value": "party"
                                                                                        },
                                                                                        "id": 5178,
                                                                                        "name": "Identifier",
                                                                                        "src": "17840:5:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5179,
                                                                                "name": "IndexAccess",
                                                                                "src": "17830:16:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5115,
                                                                                    "type": "bytes32",
                                                                                    "value": "currency"
                                                                                },
                                                                                "id": 5180,
                                                                                "name": "Identifier",
                                                                                "src": "17847:8:15"
                                                                            }
                                                                        ],
                                                                        "id": 5181,
                                                                        "name": "IndexAccess",
                                                                        "src": "17830:26:15"
                                                                    }
                                                                ],
                                                                "id": 5182,
                                                                "name": "MemberAccess",
                                                                "src": "17830:39:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5111,
                                                                    "type": "uint256",
                                                                    "value": "amount"
                                                                },
                                                                "id": 5183,
                                                                "name": "Identifier",
                                                                "src": "17871:6:15"
                                                            }
                                                        ],
                                                        "id": 5184,
                                                        "name": "FunctionCall",
                                                        "src": "17821:57:15"
                                                    }
                                                ],
                                                "id": 5185,
                                                "name": "Assignment",
                                                "src": "17779:99:15"
                                            }
                                        ],
                                        "id": 5186,
                                        "name": "ExpressionStatement",
                                        "src": "17779:99:15"
                                    }
                                ],
                                "id": 5187,
                                "name": "Block",
                                "src": "17442:444:15"
                            }
                        ],
                        "id": 5188,
                        "name": "FunctionDefinition",
                        "src": "17321:565:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "requestDeductFromBalance",
                            "scope": 5750,
                            "stateMutability": "nonpayable",
                            "superFunction": 8189,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokens",
                                            "scope": 5222,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5189,
                                                "name": "ElementaryTypeName",
                                                "src": "17976:7:15"
                                            }
                                        ],
                                        "id": 5190,
                                        "name": "VariableDeclaration",
                                        "src": "17976:14:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "receiver",
                                            "scope": 5222,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5191,
                                                "name": "ElementaryTypeName",
                                                "src": "17992:7:15"
                                            }
                                        ],
                                        "id": 5192,
                                        "name": "VariableDeclaration",
                                        "src": "17992:16:15"
                                    }
                                ],
                                "id": 5193,
                                "name": "ParameterList",
                                "src": "17975:34:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5222,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5194,
                                                "name": "ElementaryTypeName",
                                                "src": "18028:7:15"
                                            }
                                        ],
                                        "id": 5195,
                                        "name": "VariableDeclaration",
                                        "src": "18028:7:15"
                                    }
                                ],
                                "id": 5196,
                                "name": "ParameterList",
                                "src": "18027:9:15"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5197,
                                                        "name": "Identifier",
                                                        "src": "18047:7:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "||",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "bytes32",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address_payable",
                                                                                            "typeString": "address payable"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "getType",
                                                                                    "referencedDeclaration": 8240,
                                                                                    "type": "function (address) view external returns (bytes32)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3633,
                                                                                            "type": "contract ViaFactory",
                                                                                            "value": "_factory"
                                                                                        },
                                                                                        "id": 5198,
                                                                                        "name": "Identifier",
                                                                                        "src": "18055:8:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5199,
                                                                                "name": "MemberAccess",
                                                                                "src": "18055:16:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "sender",
                                                                                    "referencedDeclaration": null,
                                                                                    "type": "address payable"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 13007,
                                                                                            "type": "msg",
                                                                                            "value": "msg"
                                                                                        },
                                                                                        "id": 5200,
                                                                                        "name": "Identifier",
                                                                                        "src": "18072:3:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5201,
                                                                                "name": "MemberAccess",
                                                                                "src": "18072:10:15"
                                                                            }
                                                                        ],
                                                                        "id": 5202,
                                                                        "name": "FunctionCall",
                                                                        "src": "18055:28:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "56696143617368",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"ViaCash\"",
                                                                            "value": "ViaCash"
                                                                        },
                                                                        "id": 5203,
                                                                        "name": "Literal",
                                                                        "src": "18087:9:15"
                                                                    }
                                                                ],
                                                                "id": 5204,
                                                                "name": "BinaryOperation",
                                                                "src": "18055:41:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "bytes32",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address_payable",
                                                                                            "typeString": "address payable"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "getType",
                                                                                    "referencedDeclaration": 8240,
                                                                                    "type": "function (address) view external returns (bytes32)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3633,
                                                                                            "type": "contract ViaFactory",
                                                                                            "value": "_factory"
                                                                                        },
                                                                                        "id": 5205,
                                                                                        "name": "Identifier",
                                                                                        "src": "18100:8:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5206,
                                                                                "name": "MemberAccess",
                                                                                "src": "18100:16:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "sender",
                                                                                    "referencedDeclaration": null,
                                                                                    "type": "address payable"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 13007,
                                                                                            "type": "msg",
                                                                                            "value": "msg"
                                                                                        },
                                                                                        "id": 5207,
                                                                                        "name": "Identifier",
                                                                                        "src": "18117:3:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5208,
                                                                                "name": "MemberAccess",
                                                                                "src": "18117:10:15"
                                                                            }
                                                                        ],
                                                                        "id": 5209,
                                                                        "name": "FunctionCall",
                                                                        "src": "18100:28:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "566961426f6e64",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"ViaBond\"",
                                                                            "value": "ViaBond"
                                                                        },
                                                                        "id": 5210,
                                                                        "name": "Literal",
                                                                        "src": "18132:9:15"
                                                                    }
                                                                ],
                                                                "id": 5211,
                                                                "name": "BinaryOperation",
                                                                "src": "18100:41:15"
                                                            }
                                                        ],
                                                        "id": 5212,
                                                        "name": "BinaryOperation",
                                                        "src": "18055:86:15"
                                                    }
                                                ],
                                                "id": 5213,
                                                "name": "FunctionCall",
                                                "src": "18047:95:15"
                                            }
                                        ],
                                        "id": 5214,
                                        "name": "ExpressionStatement",
                                        "src": "18047:95:15"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 5196
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isInlineArray": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5278,
                                                                    "type": "function (uint256,address) returns (uint256)",
                                                                    "value": "deductFromBalance"
                                                                },
                                                                "id": 5215,
                                                                "name": "Identifier",
                                                                "src": "18160:17:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5190,
                                                                    "type": "uint256",
                                                                    "value": "tokens"
                                                                },
                                                                "id": 5216,
                                                                "name": "Identifier",
                                                                "src": "18178:6:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5192,
                                                                    "type": "address",
                                                                    "value": "receiver"
                                                                },
                                                                "id": 5217,
                                                                "name": "Identifier",
                                                                "src": "18186:8:15"
                                                            }
                                                        ],
                                                        "id": 5218,
                                                        "name": "FunctionCall",
                                                        "src": "18160:35:15"
                                                    }
                                                ],
                                                "id": 5219,
                                                "name": "TupleExpression",
                                                "src": "18159:37:15"
                                            }
                                        ],
                                        "id": 5220,
                                        "name": "Return",
                                        "src": "18153:43:15"
                                    }
                                ],
                                "id": 5221,
                                "name": "Block",
                                "src": "18036:168:15"
                            }
                        ],
                        "id": 5222,
                        "name": "FunctionDefinition",
                        "src": "17942:262:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "deductFromBalance",
                            "scope": 5750,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokens",
                                            "scope": 5278,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5223,
                                                "name": "ElementaryTypeName",
                                                "src": "18320:7:15"
                                            }
                                        ],
                                        "id": 5224,
                                        "name": "VariableDeclaration",
                                        "src": "18320:14:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "receiver",
                                            "scope": 5278,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5225,
                                                "name": "ElementaryTypeName",
                                                "src": "18336:7:15"
                                            }
                                        ],
                                        "id": 5226,
                                        "name": "VariableDeclaration",
                                        "src": "18336:16:15"
                                    }
                                ],
                                "id": 5227,
                                "name": "ParameterList",
                                "src": "18319:34:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5278,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5228,
                                                "name": "ElementaryTypeName",
                                                "src": "18371:7:15"
                                            }
                                        ],
                                        "id": 5229,
                                        "name": "VariableDeclaration",
                                        "src": "18371:7:15"
                                    }
                                ],
                                "id": 5230,
                                "name": "ParameterList",
                                "src": "18370:9:15"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": ">=",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address_payable",
                                                                            "typeString": "address payable"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 12173,
                                                                    "type": "function (address) view returns (uint256)",
                                                                    "value": "balanceOf"
                                                                },
                                                                "id": 5231,
                                                                "name": "Identifier",
                                                                "src": "18471:9:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "address payable",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                    "typeString": "contract Cash"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "type": "type(address)",
                                                                            "value": "address"
                                                                        },
                                                                        "id": 5232,
                                                                        "name": "ElementaryTypeNameExpression",
                                                                        "src": "18481:7:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 13077,
                                                                            "type": "contract Cash",
                                                                            "value": "this"
                                                                        },
                                                                        "id": 5233,
                                                                        "name": "Identifier",
                                                                        "src": "18489:4:15"
                                                                    }
                                                                ],
                                                                "id": 5234,
                                                                "name": "FunctionCall",
                                                                "src": "18481:13:15"
                                                            }
                                                        ],
                                                        "id": 5235,
                                                        "name": "FunctionCall",
                                                        "src": "18471:24:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5224,
                                                            "type": "uint256",
                                                            "value": "tokens"
                                                        },
                                                        "id": 5236,
                                                        "name": "Identifier",
                                                        "src": "18499:6:15"
                                                    }
                                                ],
                                                "id": 5237,
                                                "name": "BinaryOperation",
                                                "src": "18471:34:15"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address_payable",
                                                                                    "typeString": "address payable"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 12375,
                                                                            "type": "function (address,address,uint256)",
                                                                            "value": "_transfer"
                                                                        },
                                                                        "id": 5238,
                                                                        "name": "Identifier",
                                                                        "src": "18521:9:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "address payable",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                            "typeString": "contract Cash"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address)",
                                                                                    "value": "address"
                                                                                },
                                                                                "id": 5239,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "18531:7:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 13077,
                                                                                    "type": "contract Cash",
                                                                                    "value": "this"
                                                                                },
                                                                                "id": 5240,
                                                                                "name": "Identifier",
                                                                                "src": "18539:4:15"
                                                                            }
                                                                        ],
                                                                        "id": 5241,
                                                                        "name": "FunctionCall",
                                                                        "src": "18531:13:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5226,
                                                                            "type": "address",
                                                                            "value": "receiver"
                                                                        },
                                                                        "id": 5242,
                                                                        "name": "Identifier",
                                                                        "src": "18546:8:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5224,
                                                                            "type": "uint256",
                                                                            "value": "tokens"
                                                                        },
                                                                        "id": 5243,
                                                                        "name": "Identifier",
                                                                        "src": "18556:6:15"
                                                                    }
                                                                ],
                                                                "id": 5244,
                                                                "name": "FunctionCall",
                                                                "src": "18521:42:15"
                                                            }
                                                        ],
                                                        "id": 5245,
                                                        "name": "ExpressionStatement",
                                                        "src": "18521:42:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "functionReturnParameters": 5230
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 5246,
                                                                "name": "Literal",
                                                                "src": "18585:1:15"
                                                            }
                                                        ],
                                                        "id": 5247,
                                                        "name": "Return",
                                                        "src": "18578:8:15"
                                                    }
                                                ],
                                                "id": 5248,
                                                "name": "Block",
                                                "src": "18506:92:15"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                5250
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "name": "balance",
                                                                    "scope": 5275,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "uint256",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "uint256",
                                                                            "type": "uint256"
                                                                        },
                                                                        "id": 5249,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "18627:7:15"
                                                                    }
                                                                ],
                                                                "id": 5250,
                                                                "name": "VariableDeclaration",
                                                                "src": "18627:15:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "sub",
                                                                            "referencedDeclaration": 10300,
                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 10483,
                                                                                    "type": "type(library Math)",
                                                                                    "value": "Math"
                                                                                },
                                                                                "id": 5251,
                                                                                "name": "Identifier",
                                                                                "src": "18645:4:15"
                                                                            }
                                                                        ],
                                                                        "id": 5252,
                                                                        "name": "MemberAccess",
                                                                        "src": "18645:8:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5224,
                                                                            "type": "uint256",
                                                                            "value": "tokens"
                                                                        },
                                                                        "id": 5253,
                                                                        "name": "Identifier",
                                                                        "src": "18654:6:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address_payable",
                                                                                            "typeString": "address payable"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 12173,
                                                                                    "type": "function (address) view returns (uint256)",
                                                                                    "value": "balanceOf"
                                                                                },
                                                                                "id": 5254,
                                                                                "name": "Identifier",
                                                                                "src": "18662:9:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "address payable",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                                    "typeString": "contract Cash"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "type": "type(address)",
                                                                                            "value": "address"
                                                                                        },
                                                                                        "id": 5255,
                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                        "src": "18672:7:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 13077,
                                                                                            "type": "contract Cash",
                                                                                            "value": "this"
                                                                                        },
                                                                                        "id": 5256,
                                                                                        "name": "Identifier",
                                                                                        "src": "18680:4:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5257,
                                                                                "name": "FunctionCall",
                                                                                "src": "18672:13:15"
                                                                            }
                                                                        ],
                                                                        "id": 5258,
                                                                        "name": "FunctionCall",
                                                                        "src": "18662:24:15"
                                                                    }
                                                                ],
                                                                "id": 5259,
                                                                "name": "FunctionCall",
                                                                "src": "18645:42:15"
                                                            }
                                                        ],
                                                        "id": 5260,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "18627:60:15"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address_payable",
                                                                                    "typeString": "address payable"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 12375,
                                                                            "type": "function (address,address,uint256)",
                                                                            "value": "_transfer"
                                                                        },
                                                                        "id": 5261,
                                                                        "name": "Identifier",
                                                                        "src": "18702:9:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "address payable",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                            "typeString": "contract Cash"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address)",
                                                                                    "value": "address"
                                                                                },
                                                                                "id": 5262,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "18712:7:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 13077,
                                                                                    "type": "contract Cash",
                                                                                    "value": "this"
                                                                                },
                                                                                "id": 5263,
                                                                                "name": "Identifier",
                                                                                "src": "18720:4:15"
                                                                            }
                                                                        ],
                                                                        "id": 5264,
                                                                        "name": "FunctionCall",
                                                                        "src": "18712:13:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5226,
                                                                            "type": "address",
                                                                            "value": "receiver"
                                                                        },
                                                                        "id": 5265,
                                                                        "name": "Identifier",
                                                                        "src": "18727:8:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address_payable",
                                                                                            "typeString": "address payable"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 12173,
                                                                                    "type": "function (address) view returns (uint256)",
                                                                                    "value": "balanceOf"
                                                                                },
                                                                                "id": 5266,
                                                                                "name": "Identifier",
                                                                                "src": "18737:9:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "address payable",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                                    "typeString": "contract Cash"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "type": "type(address)",
                                                                                            "value": "address"
                                                                                        },
                                                                                        "id": 5267,
                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                        "src": "18747:7:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 13077,
                                                                                            "type": "contract Cash",
                                                                                            "value": "this"
                                                                                        },
                                                                                        "id": 5268,
                                                                                        "name": "Identifier",
                                                                                        "src": "18755:4:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5269,
                                                                                "name": "FunctionCall",
                                                                                "src": "18747:13:15"
                                                                            }
                                                                        ],
                                                                        "id": 5270,
                                                                        "name": "FunctionCall",
                                                                        "src": "18737:24:15"
                                                                    }
                                                                ],
                                                                "id": 5271,
                                                                "name": "FunctionCall",
                                                                "src": "18702:60:15"
                                                            }
                                                        ],
                                                        "id": 5272,
                                                        "name": "ExpressionStatement",
                                                        "src": "18702:60:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "functionReturnParameters": 5230
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5250,
                                                                    "type": "uint256",
                                                                    "value": "balance"
                                                                },
                                                                "id": 5273,
                                                                "name": "Identifier",
                                                                "src": "18784:7:15"
                                                            }
                                                        ],
                                                        "id": 5274,
                                                        "name": "Return",
                                                        "src": "18777:14:15"
                                                    }
                                                ],
                                                "id": 5275,
                                                "name": "Block",
                                                "src": "18612:191:15"
                                            }
                                        ],
                                        "id": 5276,
                                        "name": "IfStatement",
                                        "src": "18468:335:15"
                                    }
                                ],
                                "id": 5277,
                                "name": "Block",
                                "src": "18379:431:15"
                            }
                        ],
                        "id": 5278,
                        "name": "FunctionDefinition",
                        "src": "18293:517:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "transferFrom",
                            "scope": 5750,
                            "stateMutability": "nonpayable",
                            "superFunction": 12263,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "sender",
                                            "scope": 5452,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5279,
                                                "name": "ElementaryTypeName",
                                                "src": "18976:7:15"
                                            }
                                        ],
                                        "id": 5280,
                                        "name": "VariableDeclaration",
                                        "src": "18976:14:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "receiver",
                                            "scope": 5452,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5281,
                                                "name": "ElementaryTypeName",
                                                "src": "18992:7:15"
                                            }
                                        ],
                                        "id": 5282,
                                        "name": "VariableDeclaration",
                                        "src": "18992:16:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokens",
                                            "scope": 5452,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5283,
                                                "name": "ElementaryTypeName",
                                                "src": "19010:7:15"
                                            }
                                        ],
                                        "id": 5284,
                                        "name": "VariableDeclaration",
                                        "src": "19010:14:15"
                                    }
                                ],
                                "id": 5285,
                                "name": "ParameterList",
                                "src": "18975:50:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5452,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 5286,
                                                "name": "ElementaryTypeName",
                                                "src": "19042:4:15"
                                            }
                                        ],
                                        "id": 5287,
                                        "name": "VariableDeclaration",
                                        "src": "19042:4:15"
                                    }
                                ],
                                "id": 5288,
                                "name": "ParameterList",
                                "src": "19041:6:15"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5289,
                                                        "name": "Identifier",
                                                        "src": "19097:7:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 12542,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 5290,
                                                                "name": "Identifier",
                                                                "src": "19105:6:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 5291,
                                                                "name": "Literal",
                                                                "src": "19115:5:15"
                                                            }
                                                        ],
                                                        "id": 5292,
                                                        "name": "BinaryOperation",
                                                        "src": "19105:15:15"
                                                    }
                                                ],
                                                "id": 5293,
                                                "name": "FunctionCall",
                                                "src": "19097:24:15"
                                            }
                                        ],
                                        "id": 5294,
                                        "name": "ExpressionStatement",
                                        "src": "19097:24:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5295,
                                                        "name": "Identifier",
                                                        "src": "19160:7:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bool",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5628,
                                                                            "type": "function (address) view returns (bool)",
                                                                            "value": "amlCheck"
                                                                        },
                                                                        "id": 5296,
                                                                        "name": "Identifier",
                                                                        "src": "19168:8:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5280,
                                                                            "type": "address",
                                                                            "value": "sender"
                                                                        },
                                                                        "id": 5297,
                                                                        "name": "Identifier",
                                                                        "src": "19177:6:15"
                                                                    }
                                                                ],
                                                                "id": 5298,
                                                                "name": "FunctionCall",
                                                                "src": "19168:16:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "74727565",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "true"
                                                                },
                                                                "id": 5299,
                                                                "name": "Literal",
                                                                "src": "19186:4:15"
                                                            }
                                                        ],
                                                        "id": 5300,
                                                        "name": "BinaryOperation",
                                                        "src": "19168:22:15"
                                                    }
                                                ],
                                                "id": 5301,
                                                "name": "FunctionCall",
                                                "src": "19160:31:15"
                                            }
                                        ],
                                        "id": 5302,
                                        "name": "ExpressionStatement",
                                        "src": "19160:31:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5303,
                                                        "name": "Identifier",
                                                        "src": "19202:7:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bool",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5628,
                                                                            "type": "function (address) view returns (bool)",
                                                                            "value": "amlCheck"
                                                                        },
                                                                        "id": 5304,
                                                                        "name": "Identifier",
                                                                        "src": "19210:8:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5282,
                                                                            "type": "address",
                                                                            "value": "receiver"
                                                                        },
                                                                        "id": 5305,
                                                                        "name": "Identifier",
                                                                        "src": "19219:8:15"
                                                                    }
                                                                ],
                                                                "id": 5306,
                                                                "name": "FunctionCall",
                                                                "src": "19210:18:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "74727565",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "true"
                                                                },
                                                                "id": 5307,
                                                                "name": "Literal",
                                                                "src": "19230:4:15"
                                                            }
                                                        ],
                                                        "id": 5308,
                                                        "name": "BinaryOperation",
                                                        "src": "19210:24:15"
                                                    }
                                                ],
                                                "id": 5309,
                                                "name": "FunctionCall",
                                                "src": "19202:33:15"
                                            }
                                        ],
                                        "id": 5310,
                                        "name": "ExpressionStatement",
                                        "src": "19202:33:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_67b053d9c7b868e69c4855c461316e09c6febeb899c9666d9ec16f8fca1d60a8",
                                                                    "typeString": "literal_string \"Insufficient balance for transfer\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13011,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5311,
                                                        "name": "Identifier",
                                                        "src": "19338:7:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": ">=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 12173,
                                                                            "type": "function (address) view returns (uint256)",
                                                                            "value": "balanceOf"
                                                                        },
                                                                        "id": 5312,
                                                                        "name": "Identifier",
                                                                        "src": "19346:9:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5280,
                                                                            "type": "address",
                                                                            "value": "sender"
                                                                        },
                                                                        "id": 5313,
                                                                        "name": "Identifier",
                                                                        "src": "19356:6:15"
                                                                    }
                                                                ],
                                                                "id": 5314,
                                                                "name": "FunctionCall",
                                                                "src": "19346:17:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5284,
                                                                    "type": "uint256",
                                                                    "value": "tokens"
                                                                },
                                                                "id": 5315,
                                                                "name": "Identifier",
                                                                "src": "19367:6:15"
                                                            }
                                                        ],
                                                        "id": 5316,
                                                        "name": "BinaryOperation",
                                                        "src": "19346:27:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "496e73756666696369656e742062616c616e636520666f72207472616e73666572",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Insufficient balance for transfer\"",
                                                            "value": "Insufficient balance for transfer"
                                                        },
                                                        "id": 5317,
                                                        "name": "Literal",
                                                        "src": "19375:35:15"
                                                    }
                                                ],
                                                "id": 5318,
                                                "name": "FunctionCall",
                                                "src": "19338:73:15"
                                            }
                                        ],
                                        "id": 5319,
                                        "name": "ExpressionStatement",
                                        "src": "19338:73:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5282,
                                                            "type": "address",
                                                            "value": "receiver"
                                                        },
                                                        "id": 5320,
                                                        "name": "Identifier",
                                                        "src": "19496:8:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "address payable",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_Cash_$5750",
                                                                            "typeString": "contract Cash"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)",
                                                                    "value": "address"
                                                                },
                                                                "id": 5321,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "19508:7:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 13077,
                                                                    "type": "contract Cash",
                                                                    "value": "this"
                                                                },
                                                                "id": 5322,
                                                                "name": "Identifier",
                                                                "src": "19516:4:15"
                                                            }
                                                        ],
                                                        "id": 5323,
                                                        "name": "FunctionCall",
                                                        "src": "19508:13:15"
                                                    }
                                                ],
                                                "id": 5324,
                                                "name": "BinaryOperation",
                                                "src": "19496:25:15"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bool",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_stringliteral_26ef0a97332ad048ac544d8dfacdd43e128b9816d599fdd0310960904fa18609",
                                                                                    "typeString": "literal_string \"redeem\""
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address_payable",
                                                                                    "typeString": "address payable"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5109,
                                                                            "type": "function (uint256,address,bytes32,address) returns (bool)",
                                                                            "value": "redeem"
                                                                        },
                                                                        "id": 5325,
                                                                        "name": "Identifier",
                                                                        "src": "19615:6:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5284,
                                                                            "type": "uint256",
                                                                            "value": "tokens"
                                                                        },
                                                                        "id": 5326,
                                                                        "name": "Identifier",
                                                                        "src": "19622:6:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5280,
                                                                            "type": "address",
                                                                            "value": "sender"
                                                                        },
                                                                        "id": 5327,
                                                                        "name": "Identifier",
                                                                        "src": "19630:6:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "72656465656d",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"redeem\"",
                                                                            "value": "redeem"
                                                                        },
                                                                        "id": 5328,
                                                                        "name": "Literal",
                                                                        "src": "19638:8:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "address payable",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                            "typeString": "contract Cash"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address)",
                                                                                    "value": "address"
                                                                                },
                                                                                "id": 5329,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "19648:7:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 13077,
                                                                                    "type": "contract Cash",
                                                                                    "value": "this"
                                                                                },
                                                                                "id": 5330,
                                                                                "name": "Identifier",
                                                                                "src": "19656:4:15"
                                                                            }
                                                                        ],
                                                                        "id": 5331,
                                                                        "name": "FunctionCall",
                                                                        "src": "19648:13:15"
                                                                    }
                                                                ],
                                                                "id": 5332,
                                                                "name": "FunctionCall",
                                                                "src": "19615:47:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "functionReturnParameters": 5288
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "74727565",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "bool",
                                                                            "type": "bool",
                                                                            "value": "true"
                                                                        },
                                                                        "id": 5333,
                                                                        "name": "Literal",
                                                                        "src": "19688:4:15"
                                                                    }
                                                                ],
                                                                "id": 5334,
                                                                "name": "Return",
                                                                "src": "19681:11:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "functionReturnParameters": 5288
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "66616c7365",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "bool",
                                                                            "type": "bool",
                                                                            "value": "false"
                                                                        },
                                                                        "id": 5335,
                                                                        "name": "Literal",
                                                                        "src": "19736:5:15"
                                                                    }
                                                                ],
                                                                "id": 5336,
                                                                "name": "Return",
                                                                "src": "19729:12:15"
                                                            }
                                                        ],
                                                        "id": 5337,
                                                        "name": "IfStatement",
                                                        "src": "19612:129:15"
                                                    }
                                                ],
                                                "id": 5338,
                                                "name": "Block",
                                                "src": "19522:231:15"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bytes32",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "getType",
                                                                            "referencedDeclaration": 8240,
                                                                            "type": "function (address) view external returns (bytes32)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3633,
                                                                                    "type": "contract ViaFactory",
                                                                                    "value": "_factory"
                                                                                },
                                                                                "id": 5339,
                                                                                "name": "Identifier",
                                                                                "src": "19840:8:15"
                                                                            }
                                                                        ],
                                                                        "id": 5340,
                                                                        "name": "MemberAccess",
                                                                        "src": "19840:16:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5282,
                                                                            "type": "address",
                                                                            "value": "receiver"
                                                                        },
                                                                        "id": 5341,
                                                                        "name": "Identifier",
                                                                        "src": "19857:8:15"
                                                                    }
                                                                ],
                                                                "id": 5342,
                                                                "name": "FunctionCall",
                                                                "src": "19840:26:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "56696143617368",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "string",
                                                                    "type": "literal_string \"ViaCash\"",
                                                                    "value": "ViaCash"
                                                                },
                                                                "id": 5343,
                                                                "name": "Literal",
                                                                "src": "19868:9:15"
                                                            }
                                                        ],
                                                        "id": 5344,
                                                        "name": "BinaryOperation",
                                                        "src": "19840:37:15"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "tuple()",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_bool",
                                                                                            "typeString": "bool"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_stringliteral_49e94630fa6bb3ae870cb33fc70d45b1f4820781d6a443e4cb5476f1d61d07fa",
                                                                                            "typeString": "literal_string \"Lock on transfer\""
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        13010,
                                                                                        13011
                                                                                    ],
                                                                                    "referencedDeclaration": 13011,
                                                                                    "type": "function (bool,string memory) pure",
                                                                                    "value": "require"
                                                                                },
                                                                                "id": 5345,
                                                                                "name": "Identifier",
                                                                                "src": "19894:7:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "!",
                                                                                    "prefix": true,
                                                                                    "type": "bool"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "bool"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3711,
                                                                                                    "type": "mapping(bytes32 => bool)",
                                                                                                    "value": "_lock"
                                                                                                },
                                                                                                "id": 5346,
                                                                                                "name": "Identifier",
                                                                                                "src": "19903:5:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexvalue": "7472616e73666572",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "subdenomination": null,
                                                                                                    "token": "string",
                                                                                                    "type": "literal_string \"transfer\"",
                                                                                                    "value": "transfer"
                                                                                                },
                                                                                                "id": 5347,
                                                                                                "name": "Literal",
                                                                                                "src": "19909:10:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5348,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "19903:17:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5349,
                                                                                "name": "UnaryOperation",
                                                                                "src": "19902:18:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "4c6f636b206f6e207472616e73666572",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "string",
                                                                                    "type": "literal_string \"Lock on transfer\"",
                                                                                    "value": "Lock on transfer"
                                                                                },
                                                                                "id": 5350,
                                                                                "name": "Literal",
                                                                                "src": "19922:18:15"
                                                                            }
                                                                        ],
                                                                        "id": 5351,
                                                                        "name": "FunctionCall",
                                                                        "src": "19894:47:15"
                                                                    }
                                                                ],
                                                                "id": 5352,
                                                                "name": "ExpressionStatement",
                                                                "src": "19894:47:15"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "=",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": true,
                                                                                    "type": "bool"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3711,
                                                                                            "type": "mapping(bytes32 => bool)",
                                                                                            "value": "_lock"
                                                                                        },
                                                                                        "id": 5353,
                                                                                        "name": "Identifier",
                                                                                        "src": "19956:5:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "7472616e73666572",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "string",
                                                                                            "type": "literal_string \"transfer\"",
                                                                                            "value": "transfer"
                                                                                        },
                                                                                        "id": 5354,
                                                                                        "name": "Literal",
                                                                                        "src": "19962:10:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5355,
                                                                                "name": "IndexAccess",
                                                                                "src": "19956:17:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "74727565",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "bool",
                                                                                    "type": "bool",
                                                                                    "value": "true"
                                                                                },
                                                                                "id": 5356,
                                                                                "name": "Literal",
                                                                                "src": "19976:4:15"
                                                                            }
                                                                        ],
                                                                        "id": 5357,
                                                                        "name": "Assignment",
                                                                        "src": "19956:24:15"
                                                                    }
                                                                ],
                                                                "id": 5358,
                                                                "name": "ExpressionStatement",
                                                                "src": "19956:24:15"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "tuple()",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "requestIssue",
                                                                                    "referencedDeclaration": 3980,
                                                                                    "type": "function (uint256,address,bytes32) external"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "contract Cash",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address_payable",
                                                                                                            "typeString": "address payable"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5750,
                                                                                                    "type": "type(contract Cash)",
                                                                                                    "value": "Cash"
                                                                                                },
                                                                                                "id": 5359,
                                                                                                "name": "Identifier",
                                                                                                "src": "20101:4:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "address payable",
                                                                                                    "type_conversion": true
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint160",
                                                                                                                    "typeString": "uint160"
                                                                                                                }
                                                                                                            ],
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "type(address)",
                                                                                                            "value": "address"
                                                                                                        },
                                                                                                        "id": 5360,
                                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                                        "src": "20106:7:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "uint160",
                                                                                                            "type_conversion": true
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "type(uint160)",
                                                                                                                    "value": "uint160"
                                                                                                                },
                                                                                                                "id": 5361,
                                                                                                                "name": "ElementaryTypeNameExpression",
                                                                                                                "src": "20114:7:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 5282,
                                                                                                                    "type": "address",
                                                                                                                    "value": "receiver"
                                                                                                                },
                                                                                                                "id": 5362,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "20122:8:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5363,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "20114:17:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5364,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "20106:26:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5365,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "20101:32:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5366,
                                                                                "name": "MemberAccess",
                                                                                "src": "20101:45:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5284,
                                                                                    "type": "uint256",
                                                                                    "value": "tokens"
                                                                                },
                                                                                "id": 5367,
                                                                                "name": "Identifier",
                                                                                "src": "20147:6:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5280,
                                                                                    "type": "address",
                                                                                    "value": "sender"
                                                                                },
                                                                                "id": 5368,
                                                                                "name": "Identifier",
                                                                                "src": "20155:6:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3639,
                                                                                    "type": "bytes32",
                                                                                    "value": "_cashtokenName"
                                                                                },
                                                                                "id": 5369,
                                                                                "name": "Identifier",
                                                                                "src": "20163:14:15"
                                                                            }
                                                                        ],
                                                                        "id": 5370,
                                                                        "name": "FunctionCall",
                                                                        "src": "20101:77:15"
                                                                    }
                                                                ],
                                                                "id": 5371,
                                                                "name": "ExpressionStatement",
                                                                "src": "20101:77:15"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "=",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": true,
                                                                                    "type": "bool"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3711,
                                                                                            "type": "mapping(bytes32 => bool)",
                                                                                            "value": "_lock"
                                                                                        },
                                                                                        "id": 5372,
                                                                                        "name": "Identifier",
                                                                                        "src": "20193:5:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "7472616e73666572",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "string",
                                                                                            "type": "literal_string \"transfer\"",
                                                                                            "value": "transfer"
                                                                                        },
                                                                                        "id": 5373,
                                                                                        "name": "Literal",
                                                                                        "src": "20199:10:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5374,
                                                                                "name": "IndexAccess",
                                                                                "src": "20193:17:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "66616c7365",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "bool",
                                                                                    "type": "bool",
                                                                                    "value": "false"
                                                                                },
                                                                                "id": 5375,
                                                                                "name": "Literal",
                                                                                "src": "20213:5:15"
                                                                            }
                                                                        ],
                                                                        "id": 5376,
                                                                        "name": "Assignment",
                                                                        "src": "20193:25:15"
                                                                    }
                                                                ],
                                                                "id": 5377,
                                                                "name": "ExpressionStatement",
                                                                "src": "20193:25:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "functionReturnParameters": 5288
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "74727565",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "bool",
                                                                            "type": "bool",
                                                                            "value": "true"
                                                                        },
                                                                        "id": 5378,
                                                                        "name": "Literal",
                                                                        "src": "20241:4:15"
                                                                    }
                                                                ],
                                                                "id": 5379,
                                                                "name": "Return",
                                                                "src": "20234:11:15"
                                                            }
                                                        ],
                                                        "id": 5380,
                                                        "name": "Block",
                                                        "src": "19878:395:15"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "bytes32",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "getType",
                                                                                    "referencedDeclaration": 8240,
                                                                                    "type": "function (address) view external returns (bytes32)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3633,
                                                                                            "type": "contract ViaFactory",
                                                                                            "value": "_factory"
                                                                                        },
                                                                                        "id": 5381,
                                                                                        "name": "Identifier",
                                                                                        "src": "20382:8:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5382,
                                                                                "name": "MemberAccess",
                                                                                "src": "20382:16:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5282,
                                                                                    "type": "address",
                                                                                    "value": "receiver"
                                                                                },
                                                                                "id": 5383,
                                                                                "name": "Identifier",
                                                                                "src": "20399:8:15"
                                                                            }
                                                                        ],
                                                                        "id": 5384,
                                                                        "name": "FunctionCall",
                                                                        "src": "20382:26:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "566961426f6e64",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"ViaBond\"",
                                                                            "value": "ViaBond"
                                                                        },
                                                                        "id": 5385,
                                                                        "name": "Literal",
                                                                        "src": "20410:9:15"
                                                                    }
                                                                ],
                                                                "id": 5386,
                                                                "name": "BinaryOperation",
                                                                "src": "20382:37:15"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "bool",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_address_payable",
                                                                                                    "typeString": "address payable"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "requestIssue",
                                                                                            "referencedDeclaration": 8104,
                                                                                            "type": "function (uint256,address,bytes32,address) external returns (bool)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "contract ViaBond",
                                                                                                    "type_conversion": true
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_address_payable",
                                                                                                                    "typeString": "address payable"
                                                                                                                }
                                                                                                            ],
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 8169,
                                                                                                            "type": "type(contract ViaBond)",
                                                                                                            "value": "ViaBond"
                                                                                                        },
                                                                                                        "id": 5387,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "20438:7:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "address payable",
                                                                                                            "type_conversion": true
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint160",
                                                                                                                            "typeString": "uint160"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "type(address)",
                                                                                                                    "value": "address"
                                                                                                                },
                                                                                                                "id": 5388,
                                                                                                                "name": "ElementaryTypeNameExpression",
                                                                                                                "src": "20446:7:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "isStructConstructorCall": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "type": "uint160",
                                                                                                                    "type_conversion": true
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                    "typeString": "address"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": true,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "type(uint160)",
                                                                                                                            "value": "uint160"
                                                                                                                        },
                                                                                                                        "id": 5389,
                                                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                                                        "src": "20454:7:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 5282,
                                                                                                                            "type": "address",
                                                                                                                            "value": "receiver"
                                                                                                                        },
                                                                                                                        "id": 5390,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "20462:8:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 5391,
                                                                                                                "name": "FunctionCall",
                                                                                                                "src": "20454:17:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5392,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "20446:26:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5393,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "20438:35:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5394,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "20438:48:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5284,
                                                                                            "type": "uint256",
                                                                                            "value": "tokens"
                                                                                        },
                                                                                        "id": 5395,
                                                                                        "name": "Identifier",
                                                                                        "src": "20487:6:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5280,
                                                                                            "type": "address",
                                                                                            "value": "sender"
                                                                                        },
                                                                                        "id": 5396,
                                                                                        "name": "Identifier",
                                                                                        "src": "20495:6:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3639,
                                                                                            "type": "bytes32",
                                                                                            "value": "_cashtokenName"
                                                                                        },
                                                                                        "id": 5397,
                                                                                        "name": "Identifier",
                                                                                        "src": "20503:14:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "address payable",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                                            "typeString": "contract Cash"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "type(address)",
                                                                                                    "value": "address"
                                                                                                },
                                                                                                "id": 5398,
                                                                                                "name": "ElementaryTypeNameExpression",
                                                                                                "src": "20519:7:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 13077,
                                                                                                    "type": "contract Cash",
                                                                                                    "value": "this"
                                                                                                },
                                                                                                "id": 5399,
                                                                                                "name": "Identifier",
                                                                                                "src": "20527:4:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5400,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "20519:13:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5401,
                                                                                "name": "FunctionCall",
                                                                                "src": "20438:95:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "functionReturnParameters": 5288
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "74727565",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "bool",
                                                                                            "type": "bool",
                                                                                            "value": "true"
                                                                                        },
                                                                                        "id": 5402,
                                                                                        "name": "Literal",
                                                                                        "src": "20559:4:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5403,
                                                                                "name": "Return",
                                                                                "src": "20552:11:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "functionReturnParameters": 5288
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "66616c7365",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "bool",
                                                                                            "type": "bool",
                                                                                            "value": "false"
                                                                                        },
                                                                                        "id": 5404,
                                                                                        "name": "Literal",
                                                                                        "src": "20607:5:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5405,
                                                                                "name": "Return",
                                                                                "src": "20600:12:15"
                                                                            }
                                                                        ],
                                                                        "id": 5406,
                                                                        "name": "IfStatement",
                                                                        "src": "20435:177:15"
                                                                    }
                                                                ],
                                                                "id": 5407,
                                                                "name": "Block",
                                                                "src": "20420:204:15"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "==",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "bytes32",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "getType",
                                                                                            "referencedDeclaration": 8240,
                                                                                            "type": "function (address) view external returns (bytes32)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3633,
                                                                                                    "type": "contract ViaFactory",
                                                                                                    "value": "_factory"
                                                                                                },
                                                                                                "id": 5408,
                                                                                                "name": "Identifier",
                                                                                                "src": "20730:8:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5409,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "20730:16:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5282,
                                                                                            "type": "address",
                                                                                            "value": "receiver"
                                                                                        },
                                                                                        "id": 5410,
                                                                                        "name": "Identifier",
                                                                                        "src": "20747:8:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5411,
                                                                                "name": "FunctionCall",
                                                                                "src": "20730:26:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "566961426f6e64546f6b656e",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "string",
                                                                                    "type": "literal_string \"ViaBondToken\"",
                                                                                    "value": "ViaBondToken"
                                                                                },
                                                                                "id": 5412,
                                                                                "name": "Literal",
                                                                                "src": "20758:14:15"
                                                                            }
                                                                        ],
                                                                        "id": 5413,
                                                                        "name": "BinaryOperation",
                                                                        "src": "20730:42:15"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "bool",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address_payable",
                                                                                                            "typeString": "address payable"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "requestTransaction",
                                                                                                    "referencedDeclaration": 8498,
                                                                                                    "type": "function (uint256,address,bytes32,address) external returns (bool)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "contract ViaToken",
                                                                                                            "type_conversion": true
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address_payable",
                                                                                                                            "typeString": "address payable"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 8499,
                                                                                                                    "type": "type(contract ViaToken)",
                                                                                                                    "value": "ViaToken"
                                                                                                                },
                                                                                                                "id": 5414,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "20791:8:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "isStructConstructorCall": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "type": "address payable",
                                                                                                                    "type_conversion": true
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint160",
                                                                                                                                    "typeString": "uint160"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": true,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "type(address)",
                                                                                                                            "value": "address"
                                                                                                                        },
                                                                                                                        "id": 5415,
                                                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                                                        "src": "20800:7:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "isStructConstructorCall": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "names": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "type": "uint160",
                                                                                                                            "type_conversion": true
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": [
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                            "typeString": "address"
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": true,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "type(uint160)",
                                                                                                                                    "value": "uint160"
                                                                                                                                },
                                                                                                                                "id": 5416,
                                                                                                                                "name": "ElementaryTypeNameExpression",
                                                                                                                                "src": "20808:7:15"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 5282,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "receiver"
                                                                                                                                },
                                                                                                                                "id": 5417,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "20816:8:15"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 5418,
                                                                                                                        "name": "FunctionCall",
                                                                                                                        "src": "20808:17:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 5419,
                                                                                                                "name": "FunctionCall",
                                                                                                                "src": "20800:26:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5420,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "20791:36:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5421,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "20791:55:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5284,
                                                                                                    "type": "uint256",
                                                                                                    "value": "tokens"
                                                                                                },
                                                                                                "id": 5422,
                                                                                                "name": "Identifier",
                                                                                                "src": "20847:6:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5280,
                                                                                                    "type": "address",
                                                                                                    "value": "sender"
                                                                                                },
                                                                                                "id": 5423,
                                                                                                "name": "Identifier",
                                                                                                "src": "20855:6:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3639,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "_cashtokenName"
                                                                                                },
                                                                                                "id": 5424,
                                                                                                "name": "Identifier",
                                                                                                "src": "20863:14:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "address payable",
                                                                                                    "type_conversion": true
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_contract$_Cash_$5750",
                                                                                                                    "typeString": "contract Cash"
                                                                                                                }
                                                                                                            ],
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "type(address)",
                                                                                                            "value": "address"
                                                                                                        },
                                                                                                        "id": 5425,
                                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                                        "src": "20879:7:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 13077,
                                                                                                            "type": "contract Cash",
                                                                                                            "value": "this"
                                                                                                        },
                                                                                                        "id": 5426,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "20887:4:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5427,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "20879:13:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5428,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "20791:102:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "functionReturnParameters": 5288
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexvalue": "74727565",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "subdenomination": null,
                                                                                                    "token": "bool",
                                                                                                    "type": "bool",
                                                                                                    "value": "true"
                                                                                                },
                                                                                                "id": 5429,
                                                                                                "name": "Literal",
                                                                                                "src": "20919:4:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5430,
                                                                                        "name": "Return",
                                                                                        "src": "20912:11:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "functionReturnParameters": 5288
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexvalue": "66616c7365",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "subdenomination": null,
                                                                                                    "token": "bool",
                                                                                                    "type": "bool",
                                                                                                    "value": "false"
                                                                                                },
                                                                                                "id": 5431,
                                                                                                "name": "Literal",
                                                                                                "src": "20967:5:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5432,
                                                                                        "name": "Return",
                                                                                        "src": "20960:12:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5433,
                                                                                "name": "IfStatement",
                                                                                "src": "20788:184:15"
                                                                            }
                                                                        ],
                                                                        "id": 5434,
                                                                        "name": "Block",
                                                                        "src": "20773:211:15"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "bool",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_stringliteral_b483afd3f4caedc6eebf44246fe54e38c95e3179a5ec9ea81740eca5b482d12e",
                                                                                                            "typeString": "literal_string \"transfer\""
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5109,
                                                                                                    "type": "function (uint256,address,bytes32,address) returns (bool)",
                                                                                                    "value": "redeem"
                                                                                                },
                                                                                                "id": 5435,
                                                                                                "name": "Identifier",
                                                                                                "src": "21172:6:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5284,
                                                                                                    "type": "uint256",
                                                                                                    "value": "tokens"
                                                                                                },
                                                                                                "id": 5436,
                                                                                                "name": "Identifier",
                                                                                                "src": "21179:6:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5280,
                                                                                                    "type": "address",
                                                                                                    "value": "sender"
                                                                                                },
                                                                                                "id": 5437,
                                                                                                "name": "Identifier",
                                                                                                "src": "21187:6:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexvalue": "7472616e73666572",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "subdenomination": null,
                                                                                                    "token": "string",
                                                                                                    "type": "literal_string \"transfer\"",
                                                                                                    "value": "transfer"
                                                                                                },
                                                                                                "id": 5438,
                                                                                                "name": "Literal",
                                                                                                "src": "21195:10:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5282,
                                                                                                    "type": "address",
                                                                                                    "value": "receiver"
                                                                                                },
                                                                                                "id": 5439,
                                                                                                "name": "Identifier",
                                                                                                "src": "21207:8:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5440,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "21172:44:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "functionReturnParameters": 5288
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexvalue": "74727565",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "subdenomination": null,
                                                                                                    "token": "bool",
                                                                                                    "type": "bool",
                                                                                                    "value": "true"
                                                                                                },
                                                                                                "id": 5441,
                                                                                                "name": "Literal",
                                                                                                "src": "21242:4:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5442,
                                                                                        "name": "Return",
                                                                                        "src": "21235:11:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "functionReturnParameters": 5288
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexvalue": "66616c7365",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "subdenomination": null,
                                                                                                    "token": "bool",
                                                                                                    "type": "bool",
                                                                                                    "value": "false"
                                                                                                },
                                                                                                "id": 5443,
                                                                                                "name": "Literal",
                                                                                                "src": "21290:5:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5444,
                                                                                        "name": "Return",
                                                                                        "src": "21283:12:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5445,
                                                                                "name": "IfStatement",
                                                                                "src": "21169:126:15"
                                                                            }
                                                                        ],
                                                                        "id": 5446,
                                                                        "name": "Block",
                                                                        "src": "20998:309:15"
                                                                    }
                                                                ],
                                                                "id": 5447,
                                                                "name": "IfStatement",
                                                                "src": "20727:580:15"
                                                            }
                                                        ],
                                                        "id": 5448,
                                                        "name": "IfStatement",
                                                        "src": "20379:928:15"
                                                    }
                                                ],
                                                "id": 5449,
                                                "name": "IfStatement",
                                                "src": "19837:1470:15"
                                            }
                                        ],
                                        "id": 5450,
                                        "name": "IfStatement",
                                        "src": "19493:1814:15"
                                    }
                                ],
                                "id": 5451,
                                "name": "Block",
                                "src": "19047:2268:15"
                            }
                        ],
                        "id": 5452,
                        "name": "FunctionDefinition",
                        "src": "18954:2361:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "payFee",
                            "scope": 5750,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "payer",
                                            "scope": 5595,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5453,
                                                "name": "ElementaryTypeName",
                                                "src": "21401:7:15"
                                            }
                                        ],
                                        "id": 5454,
                                        "name": "VariableDeclaration",
                                        "src": "21401:13:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 5595,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5455,
                                                "name": "ElementaryTypeName",
                                                "src": "21416:7:15"
                                            }
                                        ],
                                        "id": 5456,
                                        "name": "VariableDeclaration",
                                        "src": "21416:14:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "value",
                                            "scope": 5595,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5457,
                                                "name": "ElementaryTypeName",
                                                "src": "21432:7:15"
                                            }
                                        ],
                                        "id": 5458,
                                        "name": "VariableDeclaration",
                                        "src": "21432:13:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "currency",
                                            "scope": 5595,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 5459,
                                                "name": "ElementaryTypeName",
                                                "src": "21447:7:15"
                                            }
                                        ],
                                        "id": 5460,
                                        "name": "VariableDeclaration",
                                        "src": "21447:16:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "action",
                                            "scope": 5595,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 5461,
                                                "name": "ElementaryTypeName",
                                                "src": "21465:7:15"
                                            }
                                        ],
                                        "id": 5462,
                                        "name": "VariableDeclaration",
                                        "src": "21465:14:15"
                                    }
                                ],
                                "id": 5463,
                                "name": "ParameterList",
                                "src": "21400:80:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5595,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5464,
                                                "name": "ElementaryTypeName",
                                                "src": "21498:7:15"
                                            }
                                        ],
                                        "id": 5465,
                                        "name": "VariableDeclaration",
                                        "src": "21498:7:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5595,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5466,
                                                "name": "ElementaryTypeName",
                                                "src": "21507:7:15"
                                            }
                                        ],
                                        "id": 5467,
                                        "name": "VariableDeclaration",
                                        "src": "21507:7:15"
                                    }
                                ],
                                "id": 5468,
                                "name": "ParameterList",
                                "src": "21497:18:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                5470
                                            ],
                                            "initialValue": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "fees",
                                                    "scope": 5594,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 5469,
                                                        "name": "ElementaryTypeName",
                                                        "src": "21526:7:15"
                                                    }
                                                ],
                                                "id": 5470,
                                                "name": "VariableDeclaration",
                                                "src": "21526:12:15"
                                            }
                                        ],
                                        "id": 5471,
                                        "name": "VariableDeclarationStatement",
                                        "src": "21526:12:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5462,
                                                            "type": "bytes32",
                                                            "value": "action"
                                                        },
                                                        "id": 5472,
                                                        "name": "Identifier",
                                                        "src": "21552:6:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "7472616e73666572",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"transfer\"",
                                                            "value": "transfer"
                                                        },
                                                        "id": 5473,
                                                        "name": "Literal",
                                                        "src": "21560:10:15"
                                                    }
                                                ],
                                                "id": 5474,
                                                "name": "BinaryOperation",
                                                "src": "21552:18:15"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "=",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5470,
                                                                    "type": "uint256",
                                                                    "value": "fees"
                                                                },
                                                                "id": 5475,
                                                                "name": "Identifier",
                                                                "src": "21585:4:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_stringliteral_43b4a8ffdd1b6d1390de3a3b084de3a8b97aafc97b375dd2c5ba53c4371d99b5",
                                                                                    "typeString": "literal_string \"remittance\""
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "getFee",
                                                                            "referencedDeclaration": 8051,
                                                                            "type": "function (bytes32) view external returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3635,
                                                                                    "type": "contract VerifiedRates",
                                                                                    "value": "_rates"
                                                                                },
                                                                                "id": 5476,
                                                                                "name": "Identifier",
                                                                                "src": "21592:6:15"
                                                                            }
                                                                        ],
                                                                        "id": 5477,
                                                                        "name": "MemberAccess",
                                                                        "src": "21592:13:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "72656d697474616e6365",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"remittance\"",
                                                                            "value": "remittance"
                                                                        },
                                                                        "id": 5478,
                                                                        "name": "Literal",
                                                                        "src": "21606:12:15"
                                                                    }
                                                                ],
                                                                "id": 5479,
                                                                "name": "FunctionCall",
                                                                "src": "21592:27:15"
                                                            }
                                                        ],
                                                        "id": 5480,
                                                        "name": "Assignment",
                                                        "src": "21585:34:15"
                                                    }
                                                ],
                                                "id": 5481,
                                                "name": "ExpressionStatement",
                                                "src": "21585:34:15"
                                            },
                                            {
                                                "attributes": {
                                                    "falseBody": null
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5462,
                                                                    "type": "bytes32",
                                                                    "value": "action"
                                                                },
                                                                "id": 5482,
                                                                "name": "Identifier",
                                                                "src": "21638:6:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "77697468647261776c",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "string",
                                                                    "type": "literal_string \"withdrawl\"",
                                                                    "value": "withdrawl"
                                                                },
                                                                "id": 5483,
                                                                "name": "Literal",
                                                                "src": "21646:11:15"
                                                            }
                                                        ],
                                                        "id": 5484,
                                                        "name": "BinaryOperation",
                                                        "src": "21638:19:15"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5470,
                                                                            "type": "uint256",
                                                                            "value": "fees"
                                                                        },
                                                                        "id": 5485,
                                                                        "name": "Identifier",
                                                                        "src": "21672:4:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_stringliteral_014ab85ea8e748688cc6784b5e57ac1916c5079c4b0ea7171a3ee030794a44d0",
                                                                                            "typeString": "literal_string \"withdrawl\""
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "getFee",
                                                                                    "referencedDeclaration": 8051,
                                                                                    "type": "function (bytes32) view external returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3635,
                                                                                            "type": "contract VerifiedRates",
                                                                                            "value": "_rates"
                                                                                        },
                                                                                        "id": 5486,
                                                                                        "name": "Identifier",
                                                                                        "src": "21679:6:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5487,
                                                                                "name": "MemberAccess",
                                                                                "src": "21679:13:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "77697468647261776c",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "string",
                                                                                    "type": "literal_string \"withdrawl\"",
                                                                                    "value": "withdrawl"
                                                                                },
                                                                                "id": 5488,
                                                                                "name": "Literal",
                                                                                "src": "21693:11:15"
                                                                            }
                                                                        ],
                                                                        "id": 5489,
                                                                        "name": "FunctionCall",
                                                                        "src": "21679:26:15"
                                                                    }
                                                                ],
                                                                "id": 5490,
                                                                "name": "Assignment",
                                                                "src": "21672:33:15"
                                                            }
                                                        ],
                                                        "id": 5491,
                                                        "name": "ExpressionStatement",
                                                        "src": "21672:33:15"
                                                    }
                                                ],
                                                "id": 5492,
                                                "name": "IfStatement",
                                                "src": "21635:70:15"
                                            }
                                        ],
                                        "id": 5493,
                                        "name": "IfStatement",
                                        "src": "21549:156:15"
                                    },
                                    {
                                        "attributes": {
                                            "falseBody": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": ">",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5470,
                                                            "type": "uint256",
                                                            "value": "fees"
                                                        },
                                                        "id": 5494,
                                                        "name": "Identifier",
                                                        "src": "21719:4:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 5495,
                                                        "name": "Literal",
                                                        "src": "21726:1:15"
                                                    }
                                                ],
                                                "id": 5496,
                                                "name": "BinaryOperation",
                                                "src": "21719:8:15"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                5498
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "name": "feeTo",
                                                                    "scope": 5588,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "address",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address",
                                                                            "stateMutability": "nonpayable",
                                                                            "type": "address"
                                                                        },
                                                                        "id": 5497,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "21743:7:15"
                                                                    }
                                                                ],
                                                                "id": 5498,
                                                                "name": "VariableDeclaration",
                                                                "src": "21743:13:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        null
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "address",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                null
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "getCustodian",
                                                                            "referencedDeclaration": 8029,
                                                                            "type": "function () view external returns (address)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3635,
                                                                                    "type": "contract VerifiedRates",
                                                                                    "value": "_rates"
                                                                                },
                                                                                "id": 5499,
                                                                                "name": "Identifier",
                                                                                "src": "21759:6:15"
                                                                            }
                                                                        ],
                                                                        "id": 5500,
                                                                        "name": "MemberAccess",
                                                                        "src": "21759:19:15"
                                                                    }
                                                                ],
                                                                "id": 5501,
                                                                "name": "FunctionCall",
                                                                "src": "21759:21:15"
                                                            }
                                                        ],
                                                        "id": 5502,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "21743:37:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "falseBody": null
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "!=",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5498,
                                                                            "type": "address",
                                                                            "value": "feeTo"
                                                                        },
                                                                        "id": 5503,
                                                                        "name": "Identifier",
                                                                        "src": "21798:5:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "address payable",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                                            "typeString": "int_const 0"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address)",
                                                                                    "value": "address"
                                                                                },
                                                                                "id": 5504,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "21805:7:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "307830",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "number",
                                                                                    "type": "int_const 0",
                                                                                    "value": "0x0"
                                                                                },
                                                                                "id": 5505,
                                                                                "name": "Literal",
                                                                                "src": "21813:3:15"
                                                                            }
                                                                        ],
                                                                        "id": 5506,
                                                                        "name": "FunctionCall",
                                                                        "src": "21805:12:15"
                                                                    }
                                                                ],
                                                                "id": 5507,
                                                                "name": "BinaryOperation",
                                                                "src": "21798:19:15"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "tuple()",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 12375,
                                                                                            "type": "function (address,address,uint256)",
                                                                                            "value": "_transfer"
                                                                                        },
                                                                                        "id": 5508,
                                                                                        "name": "Identifier",
                                                                                        "src": "21837:9:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5454,
                                                                                            "type": "address",
                                                                                            "value": "payer"
                                                                                        },
                                                                                        "id": 5509,
                                                                                        "name": "Identifier",
                                                                                        "src": "21847:5:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5498,
                                                                                            "type": "address",
                                                                                            "value": "feeTo"
                                                                                        },
                                                                                        "id": 5510,
                                                                                        "name": "Identifier",
                                                                                        "src": "21854:5:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "uint256",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "mulDown",
                                                                                                    "referencedDeclaration": 8604,
                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 8909,
                                                                                                            "type": "type(library FixedPoint)",
                                                                                                            "value": "FixedPoint"
                                                                                                        },
                                                                                                        "id": 5511,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "21861:10:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5512,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "21861:18:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5470,
                                                                                                    "type": "uint256",
                                                                                                    "value": "fees"
                                                                                                },
                                                                                                "id": 5513,
                                                                                                "name": "Identifier",
                                                                                                "src": "21880:4:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5456,
                                                                                                    "type": "uint256",
                                                                                                    "value": "amount"
                                                                                                },
                                                                                                "id": 5514,
                                                                                                "name": "Identifier",
                                                                                                "src": "21886:6:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5515,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "21861:32:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5516,
                                                                                "name": "FunctionCall",
                                                                                "src": "21837:57:15"
                                                                            }
                                                                        ],
                                                                        "id": 5517,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "21837:57:15"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": true,
                                                                                            "member_name": "issuedAmount",
                                                                                            "referencedDeclaration": 3643,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct Cash.deposit storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                    "value": "_deposits"
                                                                                                                },
                                                                                                                "id": 5518,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "21913:9:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 5498,
                                                                                                                    "type": "address",
                                                                                                                    "value": "feeTo"
                                                                                                                },
                                                                                                                "id": 5519,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "21923:5:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5521,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "21913:16:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5460,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "currency"
                                                                                                        },
                                                                                                        "id": 5520,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "21930:8:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5522,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "21913:26:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5523,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "21913:39:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "uint256",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "sub",
                                                                                                    "referencedDeclaration": 10300,
                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10483,
                                                                                                            "type": "type(library Math)",
                                                                                                            "value": "Math"
                                                                                                        },
                                                                                                        "id": 5524,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "21955:4:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5525,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "21955:8:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "issuedAmount",
                                                                                                    "referencedDeclaration": 3643,
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 3659,
                                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                            "value": "_deposits"
                                                                                                                        },
                                                                                                                        "id": 5526,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "21964:9:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 5498,
                                                                                                                            "type": "address",
                                                                                                                            "value": "feeTo"
                                                                                                                        },
                                                                                                                        "id": 5527,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "21974:5:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 5528,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "21964:16:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 5460,
                                                                                                                    "type": "bytes32",
                                                                                                                    "value": "currency"
                                                                                                                },
                                                                                                                "id": 5529,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "21981:8:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5530,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "21964:26:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5531,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "21964:39:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "uint256",
                                                                                                    "type_conversion": false
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                },
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            ],
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "member_name": "mulDown",
                                                                                                            "referencedDeclaration": 8604,
                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 8909,
                                                                                                                    "type": "type(library FixedPoint)",
                                                                                                                    "value": "FixedPoint"
                                                                                                                },
                                                                                                                "id": 5532,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "22005:10:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5533,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "22005:18:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5470,
                                                                                                            "type": "uint256",
                                                                                                            "value": "fees"
                                                                                                        },
                                                                                                        "id": 5534,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "22024:4:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5456,
                                                                                                            "type": "uint256",
                                                                                                            "value": "amount"
                                                                                                        },
                                                                                                        "id": 5535,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "22030:6:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5536,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "22005:32:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5537,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "21955:83:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5538,
                                                                                "name": "Assignment",
                                                                                "src": "21913:125:15"
                                                                            }
                                                                        ],
                                                                        "id": 5539,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "21913:125:15"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": true,
                                                                                            "member_name": "depositAmount",
                                                                                            "referencedDeclaration": 3641,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct Cash.deposit storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 3659,
                                                                                                                    "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                    "value": "_deposits"
                                                                                                                },
                                                                                                                "id": 5540,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "22057:9:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 5498,
                                                                                                                    "type": "address",
                                                                                                                    "value": "feeTo"
                                                                                                                },
                                                                                                                "id": 5541,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "22067:5:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5543,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "22057:16:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5460,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "currency"
                                                                                                        },
                                                                                                        "id": 5542,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "22074:8:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5544,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "22057:26:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5545,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "22057:40:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "uint256",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "sub",
                                                                                                    "referencedDeclaration": 10300,
                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10483,
                                                                                                            "type": "type(library Math)",
                                                                                                            "value": "Math"
                                                                                                        },
                                                                                                        "id": 5546,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "22100:4:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5547,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "22100:8:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "depositAmount",
                                                                                                    "referencedDeclaration": 3641,
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "struct Cash.deposit storage ref"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "mapping(bytes32 => struct Cash.deposit storage ref)"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 3659,
                                                                                                                            "type": "mapping(address => mapping(bytes32 => struct Cash.deposit storage ref))",
                                                                                                                            "value": "_deposits"
                                                                                                                        },
                                                                                                                        "id": 5548,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "22109:9:15"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 5498,
                                                                                                                            "type": "address",
                                                                                                                            "value": "feeTo"
                                                                                                                        },
                                                                                                                        "id": 5549,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "22119:5:15"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 5550,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "22109:16:15"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 5460,
                                                                                                                    "type": "bytes32",
                                                                                                                    "value": "currency"
                                                                                                                },
                                                                                                                "id": 5551,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "22126:8:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5552,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "22109:26:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5553,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "22109:40:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "uint256",
                                                                                                    "type_conversion": false
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                },
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            ],
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "member_name": "mulDown",
                                                                                                            "referencedDeclaration": 8604,
                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 8909,
                                                                                                                    "type": "type(library FixedPoint)",
                                                                                                                    "value": "FixedPoint"
                                                                                                                },
                                                                                                                "id": 5554,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "22151:10:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5555,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "22151:18:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5470,
                                                                                                            "type": "uint256",
                                                                                                            "value": "fees"
                                                                                                        },
                                                                                                        "id": 5556,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "22170:4:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5458,
                                                                                                            "type": "uint256",
                                                                                                            "value": "value"
                                                                                                        },
                                                                                                        "id": 5557,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "22176:5:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5558,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "22151:31:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5559,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "22100:83:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5560,
                                                                                "name": "Assignment",
                                                                                "src": "22057:126:15"
                                                                            }
                                                                        ],
                                                                        "id": 5561,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "22057:126:15"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5456,
                                                                                            "type": "uint256",
                                                                                            "value": "amount"
                                                                                        },
                                                                                        "id": 5562,
                                                                                        "name": "Identifier",
                                                                                        "src": "22202:6:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "uint256",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "sub",
                                                                                                    "referencedDeclaration": 10300,
                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10483,
                                                                                                            "type": "type(library Math)",
                                                                                                            "value": "Math"
                                                                                                        },
                                                                                                        "id": 5563,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "22211:4:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5564,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "22211:8:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5456,
                                                                                                    "type": "uint256",
                                                                                                    "value": "amount"
                                                                                                },
                                                                                                "id": 5565,
                                                                                                "name": "Identifier",
                                                                                                "src": "22220:6:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "uint256",
                                                                                                    "type_conversion": false
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                },
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            ],
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "member_name": "mulDown",
                                                                                                            "referencedDeclaration": 8604,
                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 8909,
                                                                                                                    "type": "type(library FixedPoint)",
                                                                                                                    "value": "FixedPoint"
                                                                                                                },
                                                                                                                "id": 5566,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "22228:10:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5567,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "22228:18:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5470,
                                                                                                            "type": "uint256",
                                                                                                            "value": "fees"
                                                                                                        },
                                                                                                        "id": 5568,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "22247:4:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5456,
                                                                                                            "type": "uint256",
                                                                                                            "value": "amount"
                                                                                                        },
                                                                                                        "id": 5569,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "22253:6:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5570,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "22228:32:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5571,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "22211:50:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5572,
                                                                                "name": "Assignment",
                                                                                "src": "22202:59:15"
                                                                            }
                                                                        ],
                                                                        "id": 5573,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "22202:59:15"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5458,
                                                                                            "type": "uint256",
                                                                                            "value": "value"
                                                                                        },
                                                                                        "id": 5574,
                                                                                        "name": "Identifier",
                                                                                        "src": "22280:5:15"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "uint256",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "sub",
                                                                                                    "referencedDeclaration": 10300,
                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10483,
                                                                                                            "type": "type(library Math)",
                                                                                                            "value": "Math"
                                                                                                        },
                                                                                                        "id": 5575,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "22288:4:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5576,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "22288:8:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5458,
                                                                                                    "type": "uint256",
                                                                                                    "value": "value"
                                                                                                },
                                                                                                "id": 5577,
                                                                                                "name": "Identifier",
                                                                                                "src": "22297:5:15"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "uint256",
                                                                                                    "type_conversion": false
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                },
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            ],
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "member_name": "mulDown",
                                                                                                            "referencedDeclaration": 8604,
                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 8909,
                                                                                                                    "type": "type(library FixedPoint)",
                                                                                                                    "value": "FixedPoint"
                                                                                                                },
                                                                                                                "id": 5578,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "22304:10:15"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5579,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "22304:18:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5470,
                                                                                                            "type": "uint256",
                                                                                                            "value": "fees"
                                                                                                        },
                                                                                                        "id": 5580,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "22323:4:15"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5458,
                                                                                                            "type": "uint256",
                                                                                                            "value": "value"
                                                                                                        },
                                                                                                        "id": 5581,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "22329:5:15"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5582,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "22304:31:15"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5583,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "22288:48:15"
                                                                                    }
                                                                                ],
                                                                                "id": 5584,
                                                                                "name": "Assignment",
                                                                                "src": "22280:56:15"
                                                                            }
                                                                        ],
                                                                        "id": 5585,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "22280:56:15"
                                                                    }
                                                                ],
                                                                "id": 5586,
                                                                "name": "Block",
                                                                "src": "21818:551:15"
                                                            }
                                                        ],
                                                        "id": 5587,
                                                        "name": "IfStatement",
                                                        "src": "21795:574:15"
                                                    }
                                                ],
                                                "id": 5588,
                                                "name": "Block",
                                                "src": "21728:652:15"
                                            }
                                        ],
                                        "id": 5589,
                                        "name": "IfStatement",
                                        "src": "21716:664:15"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 5468
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isInlineArray": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "tuple(uint256,uint256)"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5456,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 5590,
                                                        "name": "Identifier",
                                                        "src": "22398:6:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5458,
                                                            "type": "uint256",
                                                            "value": "value"
                                                        },
                                                        "id": 5591,
                                                        "name": "Identifier",
                                                        "src": "22406:5:15"
                                                    }
                                                ],
                                                "id": 5592,
                                                "name": "TupleExpression",
                                                "src": "22397:15:15"
                                            }
                                        ],
                                        "id": 5593,
                                        "name": "Return",
                                        "src": "22390:22:15"
                                    }
                                ],
                                "id": 5594,
                                "name": "Block",
                                "src": "21515:905:15"
                            }
                        ],
                        "id": 5595,
                        "name": "FunctionDefinition",
                        "src": "21385:1035:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "amlCheck",
                            "scope": 5750,
                            "stateMutability": "view",
                            "superFunction": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "account",
                                            "scope": 5628,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5596,
                                                "name": "ElementaryTypeName",
                                                "src": "22490:7:15"
                                            }
                                        ],
                                        "id": 5597,
                                        "name": "VariableDeclaration",
                                        "src": "22490:15:15"
                                    }
                                ],
                                "id": 5598,
                                "name": "ParameterList",
                                "src": "22489:17:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5628,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 5599,
                                                "name": "ElementaryTypeName",
                                                "src": "22528:4:15"
                                            }
                                        ],
                                        "id": 5600,
                                        "name": "VariableDeclaration",
                                        "src": "22528:4:15"
                                    }
                                ],
                                "id": 5601,
                                "name": "ParameterList",
                                "src": "22527:6:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                5603
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "client",
                                                    "scope": 5627,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 5602,
                                                        "name": "ElementaryTypeName",
                                                        "src": "22544:7:15"
                                                    }
                                                ],
                                                "id": 5603,
                                                "name": "VariableDeclaration",
                                                "src": "22544:14:15"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "address",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getClient",
                                                            "referencedDeclaration": 8361,
                                                            "type": "function () view external returns (address)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3633,
                                                                    "type": "contract ViaFactory",
                                                                    "value": "_factory"
                                                                },
                                                                "id": 5604,
                                                                "name": "Identifier",
                                                                "src": "22561:8:15"
                                                            }
                                                        ],
                                                        "id": 5605,
                                                        "name": "MemberAccess",
                                                        "src": "22561:18:15"
                                                    }
                                                ],
                                                "id": 5606,
                                                "name": "FunctionCall",
                                                "src": "22561:20:15"
                                            }
                                        ],
                                        "id": 5607,
                                        "name": "VariableDeclarationStatement",
                                        "src": "22544:37:15"
                                    },
                                    {
                                        "attributes": {
                                            "falseBody": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5603,
                                                            "type": "address",
                                                            "value": "client"
                                                        },
                                                        "id": 5608,
                                                        "name": "Identifier",
                                                        "src": "22595:6:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "address payable",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                            "typeString": "int_const 0"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)",
                                                                    "value": "address"
                                                                },
                                                                "id": 5609,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "22603:7:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "307830",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0x0"
                                                                },
                                                                "id": 5610,
                                                                "name": "Literal",
                                                                "src": "22611:3:15"
                                                            }
                                                        ],
                                                        "id": 5611,
                                                        "name": "FunctionCall",
                                                        "src": "22603:12:15"
                                                    }
                                                ],
                                                "id": 5612,
                                                "name": "BinaryOperation",
                                                "src": "22595:20:15"
                                            },
                                            {
                                                "attributes": {
                                                    "functionReturnParameters": 5601
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "74727565",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "true"
                                                        },
                                                        "id": 5613,
                                                        "name": "Literal",
                                                        "src": "22637:4:15"
                                                    }
                                                ],
                                                "id": 5614,
                                                "name": "Return",
                                                "src": "22630:11:15"
                                            }
                                        ],
                                        "id": 5615,
                                        "name": "IfStatement",
                                        "src": "22592:49:15"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getAMLStatus",
                                                            "referencedDeclaration": 7999,
                                                            "type": "function (address) view external returns (bool)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "contract VerifiedClient",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8022,
                                                                            "type": "type(contract VerifiedClient)",
                                                                            "value": "VerifiedClient"
                                                                        },
                                                                        "id": 5616,
                                                                        "name": "Identifier",
                                                                        "src": "22655:14:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5603,
                                                                            "type": "address",
                                                                            "value": "client"
                                                                        },
                                                                        "id": 5617,
                                                                        "name": "Identifier",
                                                                        "src": "22670:6:15"
                                                                    }
                                                                ],
                                                                "id": 5618,
                                                                "name": "FunctionCall",
                                                                "src": "22655:22:15"
                                                            }
                                                        ],
                                                        "id": 5619,
                                                        "name": "MemberAccess",
                                                        "src": "22655:35:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5597,
                                                            "type": "address",
                                                            "value": "account"
                                                        },
                                                        "id": 5620,
                                                        "name": "Identifier",
                                                        "src": "22691:7:15"
                                                    }
                                                ],
                                                "id": 5621,
                                                "name": "FunctionCall",
                                                "src": "22655:44:15"
                                            },
                                            {
                                                "attributes": {
                                                    "functionReturnParameters": 5601
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "74727565",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "true"
                                                        },
                                                        "id": 5622,
                                                        "name": "Literal",
                                                        "src": "22721:4:15"
                                                    }
                                                ],
                                                "id": 5623,
                                                "name": "Return",
                                                "src": "22714:11:15"
                                            },
                                            {
                                                "attributes": {
                                                    "functionReturnParameters": 5601
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "66616c7365",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "false"
                                                        },
                                                        "id": 5624,
                                                        "name": "Literal",
                                                        "src": "22761:5:15"
                                                    }
                                                ],
                                                "id": 5625,
                                                "name": "Return",
                                                "src": "22754:12:15"
                                            }
                                        ],
                                        "id": 5626,
                                        "name": "IfStatement",
                                        "src": "22652:114:15"
                                    }
                                ],
                                "id": 5627,
                                "name": "Block",
                                "src": "22533:241:15"
                            }
                        ],
                        "id": 5628,
                        "name": "FunctionDefinition",
                        "src": "22472:302:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "pause",
                            "scope": 5750,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5629,
                                "name": "ParameterList",
                                "src": "22796:2:15"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5634,
                                "name": "ParameterList",
                                "src": "22835:0:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 5669,
                                            "type": "modifier (address)",
                                            "value": "onlyFactoryOwner"
                                        },
                                        "id": 5630,
                                        "name": "Identifier",
                                        "src": "22799:16:15"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "referencedDeclaration": null,
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 13007,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 5631,
                                                "name": "Identifier",
                                                "src": "22816:3:15"
                                            }
                                        ],
                                        "id": 5632,
                                        "name": "MemberAccess",
                                        "src": "22816:10:15"
                                    }
                                ],
                                "id": 5633,
                                "name": "ModifierInvocation",
                                "src": "22799:28:15"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 12557,
                                                            "type": "function ()",
                                                            "value": "_pause"
                                                        },
                                                        "id": 5635,
                                                        "name": "Identifier",
                                                        "src": "22846:6:15"
                                                    }
                                                ],
                                                "id": 5636,
                                                "name": "FunctionCall",
                                                "src": "22846:8:15"
                                            }
                                        ],
                                        "id": 5637,
                                        "name": "ExpressionStatement",
                                        "src": "22846:8:15"
                                    }
                                ],
                                "id": 5638,
                                "name": "Block",
                                "src": "22835:27:15"
                            }
                        ],
                        "id": 5639,
                        "name": "FunctionDefinition",
                        "src": "22782:80:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "unpause",
                            "scope": 5750,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5640,
                                "name": "ParameterList",
                                "src": "22890:2:15"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5645,
                                "name": "ParameterList",
                                "src": "22929:0:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 5669,
                                            "type": "modifier (address)",
                                            "value": "onlyFactoryOwner"
                                        },
                                        "id": 5641,
                                        "name": "Identifier",
                                        "src": "22893:16:15"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "referencedDeclaration": null,
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 13007,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 5642,
                                                "name": "Identifier",
                                                "src": "22910:3:15"
                                            }
                                        ],
                                        "id": 5643,
                                        "name": "MemberAccess",
                                        "src": "22910:10:15"
                                    }
                                ],
                                "id": 5644,
                                "name": "ModifierInvocation",
                                "src": "22893:28:15"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 12568,
                                                            "type": "function ()",
                                                            "value": "_unpause"
                                                        },
                                                        "id": 5646,
                                                        "name": "Identifier",
                                                        "src": "22940:8:15"
                                                    }
                                                ],
                                                "id": 5647,
                                                "name": "FunctionCall",
                                                "src": "22940:10:15"
                                            }
                                        ],
                                        "id": 5648,
                                        "name": "ExpressionStatement",
                                        "src": "22940:10:15"
                                    }
                                ],
                                "id": 5649,
                                "name": "Block",
                                "src": "22929:29:15"
                            }
                        ],
                        "id": 5650,
                        "name": "FunctionDefinition",
                        "src": "22874:84:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "name": "onlyFactoryOwner",
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "sender",
                                            "scope": 5669,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5651,
                                                "name": "ElementaryTypeName",
                                                "src": "22993:7:15"
                                            }
                                        ],
                                        "id": 5652,
                                        "name": "VariableDeclaration",
                                        "src": "22993:14:15"
                                    }
                                ],
                                "id": 5653,
                                "name": "ParameterList",
                                "src": "22992:16:15"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5654,
                                                        "name": "Identifier",
                                                        "src": "23019:7:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "||",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5652,
                                                                            "type": "address",
                                                                            "value": "sender"
                                                                        },
                                                                        "id": 5655,
                                                                        "name": "Identifier",
                                                                        "src": "23027:6:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "arguments": [
                                                                                null
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "address",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        null
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 259,
                                                                                    "type": "function () view returns (address)",
                                                                                    "value": "owner"
                                                                                },
                                                                                "id": 5656,
                                                                                "name": "Identifier",
                                                                                "src": "23037:5:15"
                                                                            }
                                                                        ],
                                                                        "id": 5657,
                                                                        "name": "FunctionCall",
                                                                        "src": "23037:7:15"
                                                                    }
                                                                ],
                                                                "id": 5658,
                                                                "name": "BinaryOperation",
                                                                "src": "23027:17:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5652,
                                                                            "type": "address",
                                                                            "value": "sender"
                                                                        },
                                                                        "id": 5659,
                                                                        "name": "Identifier",
                                                                        "src": "23048:6:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "address",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                                            "typeString": "contract ViaFactory"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address)",
                                                                                    "value": "address"
                                                                                },
                                                                                "id": 5660,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "23058:7:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3633,
                                                                                    "type": "contract ViaFactory",
                                                                                    "value": "_factory"
                                                                                },
                                                                                "id": 5661,
                                                                                "name": "Identifier",
                                                                                "src": "23066:8:15"
                                                                            }
                                                                        ],
                                                                        "id": 5662,
                                                                        "name": "FunctionCall",
                                                                        "src": "23058:17:15"
                                                                    }
                                                                ],
                                                                "id": 5663,
                                                                "name": "BinaryOperation",
                                                                "src": "23048:27:15"
                                                            }
                                                        ],
                                                        "id": 5664,
                                                        "name": "BinaryOperation",
                                                        "src": "23027:48:15"
                                                    }
                                                ],
                                                "id": 5665,
                                                "name": "FunctionCall",
                                                "src": "23019:57:15"
                                            }
                                        ],
                                        "id": 5666,
                                        "name": "ExpressionStatement",
                                        "src": "23019:57:15"
                                    },
                                    {
                                        "id": 5667,
                                        "name": "PlaceholderStatement",
                                        "src": "23087:1:15"
                                    }
                                ],
                                "id": 5668,
                                "name": "Block",
                                "src": "23008:88:15"
                            }
                        ],
                        "id": 5669,
                        "name": "ModifierDefinition",
                        "src": "22966:130:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "_computeScalingFactor",
                            "scope": 5750,
                            "stateMutability": "view",
                            "superFunction": null,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "token",
                                            "scope": 5701,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "contract IERC20",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "contractScope": null,
                                                    "name": "IERC20",
                                                    "referencedDeclaration": 409,
                                                    "type": "contract IERC20"
                                                },
                                                "id": 5670,
                                                "name": "UserDefinedTypeName",
                                                "src": "23135:6:15"
                                            }
                                        ],
                                        "id": 5671,
                                        "name": "VariableDeclaration",
                                        "src": "23135:12:15"
                                    }
                                ],
                                "id": 5672,
                                "name": "ParameterList",
                                "src": "23134:14:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5701,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5673,
                                                "name": "ElementaryTypeName",
                                                "src": "23172:7:15"
                                            }
                                        ],
                                        "id": 5674,
                                        "name": "VariableDeclaration",
                                        "src": "23172:7:15"
                                    }
                                ],
                                "id": 5675,
                                "name": "ParameterList",
                                "src": "23171:9:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                5677
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "tokenDecimals",
                                                    "scope": 5700,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 5676,
                                                        "name": "ElementaryTypeName",
                                                        "src": "23275:7:15"
                                                    }
                                                ],
                                                "id": 5677,
                                                "name": "VariableDeclaration",
                                                "src": "23275:21:15"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "uint8",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "decimals",
                                                            "referencedDeclaration": 12153,
                                                            "type": "function () view external returns (uint8)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "contract ERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 12538,
                                                                            "type": "type(contract ERC20)",
                                                                            "value": "ERC20"
                                                                        },
                                                                        "id": 5678,
                                                                        "name": "Identifier",
                                                                        "src": "23299:5:15"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "address",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_contract$_IERC20_$409",
                                                                                            "typeString": "contract IERC20"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address)",
                                                                                    "value": "address"
                                                                                },
                                                                                "id": 5679,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "23305:7:15"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5671,
                                                                                    "type": "contract IERC20",
                                                                                    "value": "token"
                                                                                },
                                                                                "id": 5680,
                                                                                "name": "Identifier",
                                                                                "src": "23313:5:15"
                                                                            }
                                                                        ],
                                                                        "id": 5681,
                                                                        "name": "FunctionCall",
                                                                        "src": "23305:14:15"
                                                                    }
                                                                ],
                                                                "id": 5682,
                                                                "name": "FunctionCall",
                                                                "src": "23299:21:15"
                                                            }
                                                        ],
                                                        "id": 5683,
                                                        "name": "MemberAccess",
                                                        "src": "23299:30:15"
                                                    }
                                                ],
                                                "id": 5684,
                                                "name": "FunctionCall",
                                                "src": "23299:32:15"
                                            }
                                        ],
                                        "id": 5685,
                                        "name": "VariableDeclarationStatement",
                                        "src": "23275:56:15"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                5687
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "decimalsDifference",
                                                    "scope": 5700,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 5686,
                                                        "name": "ElementaryTypeName",
                                                        "src": "23409:7:15"
                                                    }
                                                ],
                                                "id": 5687,
                                                "name": "VariableDeclaration",
                                                "src": "23409:26:15"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_rational_18_by_1",
                                                                    "typeString": "int_const 18"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "sub",
                                                            "referencedDeclaration": 10300,
                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 10483,
                                                                    "type": "type(library Math)",
                                                                    "value": "Math"
                                                                },
                                                                "id": 5688,
                                                                "name": "Identifier",
                                                                "src": "23438:4:15"
                                                            }
                                                        ],
                                                        "id": 5689,
                                                        "name": "MemberAccess",
                                                        "src": "23438:8:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "3138",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 18",
                                                            "value": "18"
                                                        },
                                                        "id": 5690,
                                                        "name": "Literal",
                                                        "src": "23447:2:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5677,
                                                            "type": "uint256",
                                                            "value": "tokenDecimals"
                                                        },
                                                        "id": 5691,
                                                        "name": "Identifier",
                                                        "src": "23451:13:15"
                                                    }
                                                ],
                                                "id": 5692,
                                                "name": "FunctionCall",
                                                "src": "23438:27:15"
                                            }
                                        ],
                                        "id": 5693,
                                        "name": "VariableDeclarationStatement",
                                        "src": "23409:56:15"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 5675
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "*",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "31653138",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 1000000000000000000",
                                                            "value": "1e18"
                                                        },
                                                        "id": 5694,
                                                        "name": "Literal",
                                                        "src": "23483:4:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "**",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "3130",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 10",
                                                                    "value": "10"
                                                                },
                                                                "id": 5695,
                                                                "name": "Literal",
                                                                "src": "23490:2:15"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5687,
                                                                    "type": "uint256",
                                                                    "value": "decimalsDifference"
                                                                },
                                                                "id": 5696,
                                                                "name": "Identifier",
                                                                "src": "23494:18:15"
                                                            }
                                                        ],
                                                        "id": 5697,
                                                        "name": "BinaryOperation",
                                                        "src": "23490:22:15"
                                                    }
                                                ],
                                                "id": 5698,
                                                "name": "BinaryOperation",
                                                "src": "23483:29:15"
                                            }
                                        ],
                                        "id": 5699,
                                        "name": "Return",
                                        "src": "23476:36:15"
                                    }
                                ],
                                "id": 5700,
                                "name": "Block",
                                "src": "23181:339:15"
                            }
                        ],
                        "id": 5701,
                        "name": "FunctionDefinition",
                        "src": "23104:416:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "_upscale",
                            "scope": 5750,
                            "stateMutability": "pure",
                            "superFunction": null,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 5717,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5702,
                                                "name": "ElementaryTypeName",
                                                "src": "23546:7:15"
                                            }
                                        ],
                                        "id": 5703,
                                        "name": "VariableDeclaration",
                                        "src": "23546:14:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "scalingFactor",
                                            "scope": 5717,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5704,
                                                "name": "ElementaryTypeName",
                                                "src": "23562:7:15"
                                            }
                                        ],
                                        "id": 5705,
                                        "name": "VariableDeclaration",
                                        "src": "23562:21:15"
                                    }
                                ],
                                "id": 5706,
                                "name": "ParameterList",
                                "src": "23545:39:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5717,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5707,
                                                "name": "ElementaryTypeName",
                                                "src": "23608:7:15"
                                            }
                                        ],
                                        "id": 5708,
                                        "name": "VariableDeclaration",
                                        "src": "23608:7:15"
                                    }
                                ],
                                "id": 5709,
                                "name": "ParameterList",
                                "src": "23607:9:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 5709
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "mulDown",
                                                            "referencedDeclaration": 8604,
                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8909,
                                                                    "type": "type(library FixedPoint)",
                                                                    "value": "FixedPoint"
                                                                },
                                                                "id": 5710,
                                                                "name": "Identifier",
                                                                "src": "23643:10:15"
                                                            }
                                                        ],
                                                        "id": 5711,
                                                        "name": "MemberAccess",
                                                        "src": "23643:18:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5703,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 5712,
                                                        "name": "Identifier",
                                                        "src": "23662:6:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5705,
                                                            "type": "uint256",
                                                            "value": "scalingFactor"
                                                        },
                                                        "id": 5713,
                                                        "name": "Identifier",
                                                        "src": "23670:13:15"
                                                    }
                                                ],
                                                "id": 5714,
                                                "name": "FunctionCall",
                                                "src": "23643:41:15"
                                            }
                                        ],
                                        "id": 5715,
                                        "name": "Return",
                                        "src": "23636:48:15"
                                    }
                                ],
                                "id": 5716,
                                "name": "Block",
                                "src": "23617:75:15"
                            }
                        ],
                        "id": 5717,
                        "name": "FunctionDefinition",
                        "src": "23528:164:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "_downscaleDown",
                            "scope": 5750,
                            "stateMutability": "pure",
                            "superFunction": null,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 5733,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5718,
                                                "name": "ElementaryTypeName",
                                                "src": "23724:7:15"
                                            }
                                        ],
                                        "id": 5719,
                                        "name": "VariableDeclaration",
                                        "src": "23724:14:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "scalingFactor",
                                            "scope": 5733,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5720,
                                                "name": "ElementaryTypeName",
                                                "src": "23740:7:15"
                                            }
                                        ],
                                        "id": 5721,
                                        "name": "VariableDeclaration",
                                        "src": "23740:21:15"
                                    }
                                ],
                                "id": 5722,
                                "name": "ParameterList",
                                "src": "23723:39:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5733,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5723,
                                                "name": "ElementaryTypeName",
                                                "src": "23786:7:15"
                                            }
                                        ],
                                        "id": 5724,
                                        "name": "VariableDeclaration",
                                        "src": "23786:7:15"
                                    }
                                ],
                                "id": 5725,
                                "name": "ParameterList",
                                "src": "23785:9:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 5725
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "divDown",
                                                            "referencedDeclaration": 8695,
                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8909,
                                                                    "type": "type(library FixedPoint)",
                                                                    "value": "FixedPoint"
                                                                },
                                                                "id": 5726,
                                                                "name": "Identifier",
                                                                "src": "23813:10:15"
                                                            }
                                                        ],
                                                        "id": 5727,
                                                        "name": "MemberAccess",
                                                        "src": "23813:18:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5719,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 5728,
                                                        "name": "Identifier",
                                                        "src": "23832:6:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5721,
                                                            "type": "uint256",
                                                            "value": "scalingFactor"
                                                        },
                                                        "id": 5729,
                                                        "name": "Identifier",
                                                        "src": "23840:13:15"
                                                    }
                                                ],
                                                "id": 5730,
                                                "name": "FunctionCall",
                                                "src": "23813:41:15"
                                            }
                                        ],
                                        "id": 5731,
                                        "name": "Return",
                                        "src": "23806:48:15"
                                    }
                                ],
                                "id": 5732,
                                "name": "Block",
                                "src": "23795:67:15"
                            }
                        ],
                        "id": 5733,
                        "name": "FunctionDefinition",
                        "src": "23700:162:15"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "_downscaleUp",
                            "scope": 5750,
                            "stateMutability": "pure",
                            "superFunction": null,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 5749,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5734,
                                                "name": "ElementaryTypeName",
                                                "src": "23892:7:15"
                                            }
                                        ],
                                        "id": 5735,
                                        "name": "VariableDeclaration",
                                        "src": "23892:14:15"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "scalingFactor",
                                            "scope": 5749,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5736,
                                                "name": "ElementaryTypeName",
                                                "src": "23908:7:15"
                                            }
                                        ],
                                        "id": 5737,
                                        "name": "VariableDeclaration",
                                        "src": "23908:21:15"
                                    }
                                ],
                                "id": 5738,
                                "name": "ParameterList",
                                "src": "23891:39:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5749,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5739,
                                                "name": "ElementaryTypeName",
                                                "src": "23954:7:15"
                                            }
                                        ],
                                        "id": 5740,
                                        "name": "VariableDeclaration",
                                        "src": "23954:7:15"
                                    }
                                ],
                                "id": 5741,
                                "name": "ParameterList",
                                "src": "23953:9:15"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 5741
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "divUp",
                                                            "referencedDeclaration": 8745,
                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8909,
                                                                    "type": "type(library FixedPoint)",
                                                                    "value": "FixedPoint"
                                                                },
                                                                "id": 5742,
                                                                "name": "Identifier",
                                                                "src": "23981:10:15"
                                                            }
                                                        ],
                                                        "id": 5743,
                                                        "name": "MemberAccess",
                                                        "src": "23981:16:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5735,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 5744,
                                                        "name": "Identifier",
                                                        "src": "23998:6:15"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5737,
                                                            "type": "uint256",
                                                            "value": "scalingFactor"
                                                        },
                                                        "id": 5745,
                                                        "name": "Identifier",
                                                        "src": "24006:13:15"
                                                    }
                                                ],
                                                "id": 5746,
                                                "name": "FunctionCall",
                                                "src": "23981:39:15"
                                            }
                                        ],
                                        "id": 5747,
                                        "name": "Return",
                                        "src": "23974:46:15"
                                    }
                                ],
                                "id": 5748,
                                "name": "Block",
                                "src": "23963:65:15"
                            }
                        ],
                        "id": 5749,
                        "name": "FunctionDefinition",
                        "src": "23870:158:15"
                    }
                ],
                "id": 5750,
                "name": "ContractDefinition",
                "src": "729:23304:15"
            }
        ],
        "id": 5751,
        "name": "SourceUnit",
        "src": "110:23923:15"
    },
    "compiler": {
        "name": "solc",
        "version": "0.5.7+commit.6da8b019.Emscripten.clang"
    },
    "networks": {
        "11155111": {
            "events": {},
            "links": {
                "stringutils": "0xE0fB9FEe5E65de096e23cF8D2A9C9954027bA318"
            },
            "address": "0xA565F2e350dC3972c3C1779DE1d9EB4EF45baaBA",
            "transactionHash": "0x8089a92fccb498ef85092dfdedbaa3712010e66874542f85662d86236cca6e2a"
        }
    },
    "schemaVersion": "3.4.16",
    "updatedAt": "2025-07-26T12:25:15.327Z",
    "networkType": "ethereum",
    "devdoc": {
        "methods": {
            "allowance(address,address)": {
                "details": "See {IERC20-allowance}.\r"
            },
            "approve(address,uint256)": {
                "details": "See {IERC20-approve}.\r      * Requirements:\r      * - `spender` cannot be the zero address.\r"
            },
            "balanceOf(address)": {
                "details": "See {IERC20-balanceOf}.\r"
            },
            "decimals()": {
                "details": "Returns the number of decimals used to get its user representation.\r For example, if `decimals` equals `2`, a balance of `505` tokens should\r be displayed to a user as `5.05` (`505 / 10 ** 2`).\r      * Tokens usually opt for a value of 18, imitating the relationship between\r Ether and Wei. This is the default value returned by this function, unless\r it's overridden.\r      * NOTE: This information is only used for _display_ purposes: it in\r no way affects any of the arithmetic of the contract, including\r {IERC20-balanceOf} and {IERC20-transfer}.\r"
            },
            "decreaseAllowance(address,uint256)": {
                "details": "Atomically decreases the allowance granted to `spender` by the caller.\r      * This is an alternative to {approve} that can be used as a mitigation for\r problems described in {IERC20-approve}.\r      * Emits an {Approval} event indicating the updated allowance.\r      * Requirements:\r      * - `spender` cannot be the zero address.\r - `spender` must have allowance for the caller of at least\r `subtractedValue`.\r"
            },
            "increaseAllowance(address,uint256)": {
                "details": "Atomically increases the allowance granted to `spender` by the caller.\r      * This is an alternative to {approve} that can be used as a mitigation for\r problems described in {IERC20-approve}.\r      * Emits an {Approval} event indicating the updated allowance.\r      * Requirements:\r      * - `spender` cannot be the zero address.\r"
            },
            "initialize(address)": {
                "details": "Initializes the contract setting the deployer as the initial owner."
            },
            "isOwner()": {
                "details": "Returns true if the caller is the current owner."
            },
            "isPaused()": {
                "return": "True: contract is paused\rFalse: contract is not paused\r"
            },
            "name()": {
                "details": "Returns the name of the token.\r"
            },
            "owner()": {
                "details": "Returns the address of the current owner."
            },
            "renounceOwnership()": {
                "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner.     * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
            },
            "symbol()": {
                "details": "Returns the symbol of the token, usually a shorter version of the\r name.\r"
            },
            "totalSupply()": {
                "details": "See {IERC20-totalSupply}.\r"
            },
            "transfer(address,uint256)": {
                "details": "See {IERC20-transfer}.\r      * Requirements:\r      * - `recipient` cannot be the zero address.\r - the caller must have a balance of at least `amount`.\r"
            },
            "transferOwnership(address)": {
                "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
            }
        }
    },
    "userdoc": {
        "methods": {
            "isPaused()": {
                "notice": "returns whether or not the contract is paused\r"
            }
        }
    }
}
