{
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "DECIMALS",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "INITIAL_SUPPLY",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "NAME",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "SYMBOL",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "decreaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "addedValue",
          "type": "uint256"
        }
      ],
      "name": "increaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "allSourcePaths": {
    "11": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/Context.sol",
    "3": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/ERC20.sol",
    "4": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/IERC20.sol",
    "5": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/extensions/IERC20Metadata.sol",
    "66": "contracts/test/Tokens.sol"
  },
  "ast": {
    "absolutePath": "contracts/test/Tokens.sol",
    "exportedSymbols": {
      "DIP": [
        9363
      ],
      "ERC20": [
        15626
      ],
      "USD1": [
        9239
      ],
      "USD2": [
        9279
      ],
      "USD3": [
        9319
      ]
    },
    "id": 9364,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 9111,
        "literals": [
          "solidity",
          "0.8",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:22:66"
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/ERC20.sol",
        "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
        "id": 9113,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 9364,
        "sourceUnit": 15627,
        "src": "63:68:66",
        "symbolAliases": [
          {
            "foreign": {
              "id": 9112,
              "name": "ERC20",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "src": "71:5:66",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 9114,
              "name": "ERC20",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 15626,
              "src": "150:5:66"
            },
            "id": 9115,
            "nodeType": "InheritanceSpecifier",
            "src": "150:5:66"
          }
        ],
        "contractDependencies": [
          9510,
          15626,
          15648,
          15820
        ],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 9239,
        "linearizedBaseContracts": [
          9239,
          15626,
          9510,
          15820,
          15648
        ],
        "name": "USD1",
        "nameLocation": "142:4:66",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "functionSelector": "a3f4df7e",
            "id": 9118,
            "mutability": "constant",
            "name": "NAME",
            "nameLocation": "283:4:66",
            "nodeType": "VariableDeclaration",
            "scope": 9239,
            "src": "260:48:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 9116,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "260:6:66",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "55534420436f696e202d2044554d4d59",
              "id": 9117,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "290:18:66",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_f1f77fb2c2c60421f2302e24a7e4cd9881e813fbb52a287a66078d21b2506554",
                "typeString": "literal_string \"USD Coin - DUMMY\""
              },
              "value": "USD Coin - DUMMY"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "f76f8d78",
            "id": 9121,
            "mutability": "constant",
            "name": "SYMBOL",
            "nameLocation": "337:6:66",
            "nodeType": "VariableDeclaration",
            "scope": 9239,
            "src": "314:38:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 9119,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "314:6:66",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "55534443",
              "id": 9120,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "346:6:66",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_d6aca1be9729c13d677335161321649cccae6a591554772516700f986f942eaa",
                "typeString": "literal_string \"USDC\""
              },
              "value": "USDC"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "2e0f2625",
            "id": 9124,
            "mutability": "constant",
            "name": "DECIMALS",
            "nameLocation": "380:8:66",
            "nodeType": "VariableDeclaration",
            "scope": 9239,
            "src": "358:34:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 9122,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "358:5:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "36",
              "id": 9123,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "391:1:66",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_6_by_1",
                "typeString": "int_const 6"
              },
              "value": "6"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "2ff2e9dc",
            "id": 9129,
            "mutability": "constant",
            "name": "INITIAL_SUPPLY",
            "nameLocation": "423:14:66",
            "nodeType": "VariableDeclaration",
            "scope": 9239,
            "src": "399:47:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 9125,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "399:7:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "commonType": {
                "typeIdentifier": "t_rational_1000000000000000000000000_by_1",
                "typeString": "int_const 1000000000000000000000000"
              },
              "id": 9128,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "leftExpression": {
                "hexValue": "3130",
                "id": 9126,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "440:2:66",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_10_by_1",
                  "typeString": "int_const 10"
                },
                "value": "10"
              },
              "nodeType": "BinaryOperation",
              "operator": "**",
              "rightExpression": {
                "hexValue": "3234",
                "id": 9127,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "444:2:66",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_24_by_1",
                  "typeString": "int_const 24"
                },
                "value": "24"
              },
              "src": "440:6:66",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1000000000000000000000000_by_1",
                "typeString": "int_const 1000000000000000000000000"
              }
            },
            "visibility": "public"
          },
          {
            "anonymous": false,
            "id": 9141,
            "name": "LogUsd1Transfer",
            "nameLocation": "459:15:66",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 9140,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9131,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "483:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 9141,
                  "src": "475:12:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9130,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "475:7:66",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9133,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "497:2:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 9141,
                  "src": "489:10:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9132,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "489:7:66",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9135,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "509:6:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 9141,
                  "src": "501:14:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 9134,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "501:7:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9137,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "time",
                  "nameLocation": "525:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 9141,
                  "src": "517:12:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 9136,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "517:7:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9139,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "blockNumber",
                  "nameLocation": "539:11:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 9141,
                  "src": "531:19:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 9138,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "531:7:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "474:77:66"
            },
            "src": "453:99:66"
          },
          {
            "anonymous": false,
            "id": 9153,
            "name": "LogUsd1TransferFrom",
            "nameLocation": "563:19:66",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 9152,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9143,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "591:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 9153,
                  "src": "583:12:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9142,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "583:7:66",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9145,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "605:2:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 9153,
                  "src": "597:10:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9144,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "597:7:66",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9147,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "617:6:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 9153,
                  "src": "609:14:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 9146,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "609:7:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9149,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "time",
                  "nameLocation": "633:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 9153,
                  "src": "625:12:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 9148,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "625:7:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9151,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "blockNumber",
                  "nameLocation": "647:11:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 9153,
                  "src": "639:19:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 9150,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "639:7:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "582:77:66"
            },
            "src": "557:103:66"
          },
          {
            "body": {
              "id": 9166,
              "nodeType": "Block",
              "src": "711:86:66",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 9161,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15638,
                          "src": "740:10:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                            "typeString": "function () view returns (address)"
                          }
                        },
                        "id": 9162,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "740:12:66",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9163,
                        "name": "INITIAL_SUPPLY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9129,
                        "src": "766:14:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 9160,
                      "name": "_mint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15443,
                      "src": "721:5:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 9164,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "721:69:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9165,
                  "nodeType": "ExpressionStatement",
                  "src": "721:69:66"
                }
              ]
            },
            "id": 9167,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 9156,
                    "name": "NAME",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9118,
                    "src": "693:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  {
                    "id": 9157,
                    "name": "SYMBOL",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9121,
                    "src": "699:6:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  }
                ],
                "id": 9158,
                "modifierName": {
                  "id": 9155,
                  "name": "ERC20",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 15626,
                  "src": "687:5:66"
                },
                "nodeType": "ModifierInvocation",
                "src": "687:19:66"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9154,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "676:2:66"
            },
            "returnParameters": {
              "id": 9159,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "711:0:66"
            },
            "scope": 9239,
            "src": "665:132:66",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15115
            ],
            "body": {
              "id": 9175,
              "nodeType": "Block",
              "src": "859:32:66",
              "statements": [
                {
                  "expression": {
                    "id": 9173,
                    "name": "DECIMALS",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9124,
                    "src": "876:8:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 9172,
                  "id": 9174,
                  "nodeType": "Return",
                  "src": "869:15:66"
                }
              ]
            },
            "functionSelector": "313ce567",
            "id": 9176,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decimals",
            "nameLocation": "812:8:66",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9169,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "835:8:66"
            },
            "parameters": {
              "id": 9168,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "820:2:66"
            },
            "returnParameters": {
              "id": 9172,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9171,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 9176,
                  "src": "852:5:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 9170,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "852:5:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "851:7:66"
            },
            "scope": 9239,
            "src": "803:88:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15164
            ],
            "body": {
              "id": 9207,
              "nodeType": "Block",
              "src": "982:224:66",
              "statements": [
                {
                  "assignments": [
                    9187
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 9187,
                      "mutability": "mutable",
                      "name": "from",
                      "nameLocation": "1000:4:66",
                      "nodeType": "VariableDeclaration",
                      "scope": 9207,
                      "src": "992:12:66",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 9186,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "992:7:66",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 9190,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 9188,
                      "name": "_msgSender",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15638,
                      "src": "1007:10:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                        "typeString": "function () view returns (address)"
                      }
                    },
                    "id": 9189,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1007:12:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "992:27:66"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 9192,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9187,
                        "src": "1108:4:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9193,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9178,
                        "src": "1114:2:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9194,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9180,
                        "src": "1118:6:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "expression": {
                          "id": 9195,
                          "name": "block",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -4,
                          "src": "1126:5:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_block",
                            "typeString": "block"
                          }
                        },
                        "id": 9196,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timestamp",
                        "nodeType": "MemberAccess",
                        "src": "1126:15:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "expression": {
                          "id": 9197,
                          "name": "block",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -4,
                          "src": "1143:5:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_block",
                            "typeString": "block"
                          }
                        },
                        "id": 9198,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "number",
                        "nodeType": "MemberAccess",
                        "src": "1143:12:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 9191,
                      "name": "LogUsd1TransferFrom",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9153,
                      "src": "1088:19:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256,uint256,uint256)"
                      }
                    },
                    "id": 9199,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1088:68:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9200,
                  "nodeType": "EmitStatement",
                  "src": "1083:73:66"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9203,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9178,
                        "src": "1188:2:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9204,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9180,
                        "src": "1192:6:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 9201,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -25,
                        "src": "1173:5:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_super$_USD1_$9239_$",
                          "typeString": "type(contract super USD1)"
                        }
                      },
                      "id": 9202,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 15164,
                      "src": "1173:14:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (address,uint256) returns (bool)"
                      }
                    },
                    "id": 9205,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1173:26:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 9185,
                  "id": 9206,
                  "nodeType": "Return",
                  "src": "1166:33:66"
                }
              ]
            },
            "functionSelector": "a9059cbb",
            "id": 9208,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "transfer",
            "nameLocation": "906:8:66",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9182,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "958:8:66"
            },
            "parameters": {
              "id": 9181,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9178,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "923:2:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 9208,
                  "src": "915:10:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9177,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "915:7:66",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9180,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "935:6:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 9208,
                  "src": "927:14:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 9179,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "927:7:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "914:28:66"
            },
            "returnParameters": {
              "id": 9185,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9184,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 9208,
                  "src": "976:4:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 9183,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "976:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "975:6:66"
            },
            "scope": 9239,
            "src": "897:309:66",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15240
            ],
            "body": {
              "id": 9237,
              "nodeType": "Block",
              "src": "1333:197:66",
              "statements": [
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 9221,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9210,
                        "src": "1422:4:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9222,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9212,
                        "src": "1428:2:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9223,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9214,
                        "src": "1432:6:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "expression": {
                          "id": 9224,
                          "name": "block",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -4,
                          "src": "1440:5:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_block",
                            "typeString": "block"
                          }
                        },
                        "id": 9225,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timestamp",
                        "nodeType": "MemberAccess",
                        "src": "1440:15:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "expression": {
                          "id": 9226,
                          "name": "block",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -4,
                          "src": "1457:5:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_block",
                            "typeString": "block"
                          }
                        },
                        "id": 9227,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "number",
                        "nodeType": "MemberAccess",
                        "src": "1457:12:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 9220,
                      "name": "LogUsd1TransferFrom",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9153,
                      "src": "1402:19:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256,uint256,uint256)"
                      }
                    },
                    "id": 9228,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1402:68:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9229,
                  "nodeType": "EmitStatement",
                  "src": "1397:73:66"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9232,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9210,
                        "src": "1506:4:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9233,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9212,
                        "src": "1512:2:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9234,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9214,
                        "src": "1516:6:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 9230,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -25,
                        "src": "1487:5:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_super$_USD1_$9239_$",
                          "typeString": "type(contract super USD1)"
                        }
                      },
                      "id": 9231,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transferFrom",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 15240,
                      "src": "1487:18:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (address,address,uint256) returns (bool)"
                      }
                    },
                    "id": 9235,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1487:36:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 9219,
                  "id": 9236,
                  "nodeType": "Return",
                  "src": "1480:43:66"
                }
              ]
            },
            "functionSelector": "23b872dd",
            "id": 9238,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "transferFrom",
            "nameLocation": "1225:12:66",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9216,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1304:8:66"
            },
            "parameters": {
              "id": 9215,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9210,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "1246:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 9238,
                  "src": "1238:12:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9209,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1238:7:66",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9212,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1260:2:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 9238,
                  "src": "1252:10:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9211,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1252:7:66",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9214,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1272:6:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 9238,
                  "src": "1264:14:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 9213,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1264:7:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1237:42:66"
            },
            "returnParameters": {
              "id": 9219,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9218,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 9238,
                  "src": "1322:4:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 9217,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1322:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1321:6:66"
            },
            "scope": 9239,
            "src": "1216:314:66",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          }
        ],
        "scope": 9364,
        "src": "133:1403:66"
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 9240,
              "name": "ERC20",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 15626,
              "src": "1556:5:66"
            },
            "id": 9241,
            "nodeType": "InheritanceSpecifier",
            "src": "1556:5:66"
          }
        ],
        "contractDependencies": [
          9510,
          15626,
          15648,
          15820
        ],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 9279,
        "linearizedBaseContracts": [
          9279,
          15626,
          9510,
          15820,
          15648
        ],
        "name": "USD2",
        "nameLocation": "1548:4:66",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "functionSelector": "a3f4df7e",
            "id": 9244,
            "mutability": "constant",
            "name": "NAME",
            "nameLocation": "1671:4:66",
            "nodeType": "VariableDeclaration",
            "scope": 9279,
            "src": "1648:50:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 9242,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1648:6:66",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "54657468657220555344202d2044554d4d59",
              "id": 9243,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1678:20:66",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_01b685621f391bcf137a793808016bdd9d545f7fa4b1262a5e028fd59cd7203f",
                "typeString": "literal_string \"Tether USD - DUMMY\""
              },
              "value": "Tether USD - DUMMY"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "f76f8d78",
            "id": 9247,
            "mutability": "constant",
            "name": "SYMBOL",
            "nameLocation": "1727:6:66",
            "nodeType": "VariableDeclaration",
            "scope": 9279,
            "src": "1704:38:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 9245,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1704:6:66",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "55534454",
              "id": 9246,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1736:6:66",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_8b1a1d9c2b109e527c9134b25b1a1833b16b6594f92daa9f6d9b7a6024bce9d0",
                "typeString": "literal_string \"USDT\""
              },
              "value": "USDT"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "2e0f2625",
            "id": 9250,
            "mutability": "constant",
            "name": "DECIMALS",
            "nameLocation": "1770:8:66",
            "nodeType": "VariableDeclaration",
            "scope": 9279,
            "src": "1748:34:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 9248,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1748:5:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "36",
              "id": 9249,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1781:1:66",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_6_by_1",
                "typeString": "int_const 6"
              },
              "value": "6"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "2ff2e9dc",
            "id": 9255,
            "mutability": "constant",
            "name": "INITIAL_SUPPLY",
            "nameLocation": "1813:14:66",
            "nodeType": "VariableDeclaration",
            "scope": 9279,
            "src": "1789:47:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 9251,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1789:7:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "commonType": {
                "typeIdentifier": "t_rational_1000000000000000000000000_by_1",
                "typeString": "int_const 1000000000000000000000000"
              },
              "id": 9254,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "leftExpression": {
                "hexValue": "3130",
                "id": 9252,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "1830:2:66",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_10_by_1",
                  "typeString": "int_const 10"
                },
                "value": "10"
              },
              "nodeType": "BinaryOperation",
              "operator": "**",
              "rightExpression": {
                "hexValue": "3234",
                "id": 9253,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "1834:2:66",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_24_by_1",
                  "typeString": "int_const 24"
                },
                "value": "24"
              },
              "src": "1830:6:66",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1000000000000000000000000_by_1",
                "typeString": "int_const 1000000000000000000000000"
              }
            },
            "visibility": "public"
          },
          {
            "body": {
              "id": 9268,
              "nodeType": "Block",
              "src": "1889:86:66",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 9263,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15638,
                          "src": "1918:10:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                            "typeString": "function () view returns (address)"
                          }
                        },
                        "id": 9264,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1918:12:66",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9265,
                        "name": "INITIAL_SUPPLY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9255,
                        "src": "1944:14:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 9262,
                      "name": "_mint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15443,
                      "src": "1899:5:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 9266,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1899:69:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9267,
                  "nodeType": "ExpressionStatement",
                  "src": "1899:69:66"
                }
              ]
            },
            "id": 9269,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 9258,
                    "name": "NAME",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9244,
                    "src": "1871:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  {
                    "id": 9259,
                    "name": "SYMBOL",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9247,
                    "src": "1877:6:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  }
                ],
                "id": 9260,
                "modifierName": {
                  "id": 9257,
                  "name": "ERC20",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 15626,
                  "src": "1865:5:66"
                },
                "nodeType": "ModifierInvocation",
                "src": "1865:19:66"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9256,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1854:2:66"
            },
            "returnParameters": {
              "id": 9261,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1889:0:66"
            },
            "scope": 9279,
            "src": "1843:132:66",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15115
            ],
            "body": {
              "id": 9277,
              "nodeType": "Block",
              "src": "2037:32:66",
              "statements": [
                {
                  "expression": {
                    "id": 9275,
                    "name": "DECIMALS",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9250,
                    "src": "2054:8:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 9274,
                  "id": 9276,
                  "nodeType": "Return",
                  "src": "2047:15:66"
                }
              ]
            },
            "functionSelector": "313ce567",
            "id": 9278,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decimals",
            "nameLocation": "1990:8:66",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9271,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2013:8:66"
            },
            "parameters": {
              "id": 9270,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1998:2:66"
            },
            "returnParameters": {
              "id": 9274,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9273,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 9278,
                  "src": "2030:5:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 9272,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "2030:5:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2029:7:66"
            },
            "scope": 9279,
            "src": "1981:88:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 9364,
        "src": "1539:532:66"
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 9280,
              "name": "ERC20",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 15626,
              "src": "2091:5:66"
            },
            "id": 9281,
            "nodeType": "InheritanceSpecifier",
            "src": "2091:5:66"
          }
        ],
        "contractDependencies": [
          9510,
          15626,
          15648,
          15820
        ],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 9319,
        "linearizedBaseContracts": [
          9319,
          15626,
          9510,
          15820,
          15648
        ],
        "name": "USD3",
        "nameLocation": "2083:4:66",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "functionSelector": "a3f4df7e",
            "id": 9284,
            "mutability": "constant",
            "name": "NAME",
            "nameLocation": "2206:4:66",
            "nodeType": "VariableDeclaration",
            "scope": 9319,
            "src": "2183:49:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 9282,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "2183:6:66",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "44756d6d7920555344202d2044554d4d59",
              "id": 9283,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "2213:19:66",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_546826c9a0b968abffd1342d5c7319417e3b449f67b4e20e1e06fed705561a74",
                "typeString": "literal_string \"Dummy USD - DUMMY\""
              },
              "value": "Dummy USD - DUMMY"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "f76f8d78",
            "id": 9287,
            "mutability": "constant",
            "name": "SYMBOL",
            "nameLocation": "2261:6:66",
            "nodeType": "VariableDeclaration",
            "scope": 9319,
            "src": "2238:38:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 9285,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "2238:6:66",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "44555344",
              "id": 9286,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "2270:6:66",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_b5a2d780925236f5bfea61107e924aee1063d3bd844416a64826b7188a75681c",
                "typeString": "literal_string \"DUSD\""
              },
              "value": "DUSD"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "2e0f2625",
            "id": 9290,
            "mutability": "constant",
            "name": "DECIMALS",
            "nameLocation": "2304:8:66",
            "nodeType": "VariableDeclaration",
            "scope": 9319,
            "src": "2282:35:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 9288,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "2282:5:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "3133",
              "id": 9289,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "2315:2:66",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_13_by_1",
                "typeString": "int_const 13"
              },
              "value": "13"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "2ff2e9dc",
            "id": 9295,
            "mutability": "constant",
            "name": "INITIAL_SUPPLY",
            "nameLocation": "2348:14:66",
            "nodeType": "VariableDeclaration",
            "scope": 9319,
            "src": "2324:47:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 9291,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "2324:7:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "commonType": {
                "typeIdentifier": "t_rational_1000000000000000000000000_by_1",
                "typeString": "int_const 1000000000000000000000000"
              },
              "id": 9294,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "leftExpression": {
                "hexValue": "3130",
                "id": 9292,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "2365:2:66",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_10_by_1",
                  "typeString": "int_const 10"
                },
                "value": "10"
              },
              "nodeType": "BinaryOperation",
              "operator": "**",
              "rightExpression": {
                "hexValue": "3234",
                "id": 9293,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "2369:2:66",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_24_by_1",
                  "typeString": "int_const 24"
                },
                "value": "24"
              },
              "src": "2365:6:66",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1000000000000000000000000_by_1",
                "typeString": "int_const 1000000000000000000000000"
              }
            },
            "visibility": "public"
          },
          {
            "body": {
              "id": 9308,
              "nodeType": "Block",
              "src": "2424:86:66",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 9303,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15638,
                          "src": "2453:10:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                            "typeString": "function () view returns (address)"
                          }
                        },
                        "id": 9304,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2453:12:66",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9305,
                        "name": "INITIAL_SUPPLY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9295,
                        "src": "2479:14:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 9302,
                      "name": "_mint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15443,
                      "src": "2434:5:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 9306,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2434:69:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9307,
                  "nodeType": "ExpressionStatement",
                  "src": "2434:69:66"
                }
              ]
            },
            "id": 9309,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 9298,
                    "name": "NAME",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9284,
                    "src": "2406:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  {
                    "id": 9299,
                    "name": "SYMBOL",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9287,
                    "src": "2412:6:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  }
                ],
                "id": 9300,
                "modifierName": {
                  "id": 9297,
                  "name": "ERC20",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 15626,
                  "src": "2400:5:66"
                },
                "nodeType": "ModifierInvocation",
                "src": "2400:19:66"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9296,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2389:2:66"
            },
            "returnParameters": {
              "id": 9301,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2424:0:66"
            },
            "scope": 9319,
            "src": "2378:132:66",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15115
            ],
            "body": {
              "id": 9317,
              "nodeType": "Block",
              "src": "2572:32:66",
              "statements": [
                {
                  "expression": {
                    "id": 9315,
                    "name": "DECIMALS",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9290,
                    "src": "2589:8:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 9314,
                  "id": 9316,
                  "nodeType": "Return",
                  "src": "2582:15:66"
                }
              ]
            },
            "functionSelector": "313ce567",
            "id": 9318,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decimals",
            "nameLocation": "2525:8:66",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9311,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2548:8:66"
            },
            "parameters": {
              "id": 9310,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2533:2:66"
            },
            "returnParameters": {
              "id": 9314,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9313,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 9318,
                  "src": "2565:5:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 9312,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "2565:5:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2564:7:66"
            },
            "scope": 9319,
            "src": "2516:88:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 9364,
        "src": "2074:532:66"
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 9320,
              "name": "ERC20",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 15626,
              "src": "2625:5:66"
            },
            "id": 9321,
            "nodeType": "InheritanceSpecifier",
            "src": "2625:5:66"
          }
        ],
        "contractDependencies": [
          9510,
          15626,
          15648,
          15820
        ],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 9363,
        "linearizedBaseContracts": [
          9363,
          15626,
          9510,
          15820,
          15648
        ],
        "name": "DIP",
        "nameLocation": "2618:3:66",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "functionSelector": "a3f4df7e",
            "id": 9324,
            "mutability": "constant",
            "name": "NAME",
            "nameLocation": "2751:4:66",
            "nodeType": "VariableDeclaration",
            "scope": 9363,
            "src": "2728:72:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 9322,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "2728:6:66",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "446563656e7472616c697a656420496e737572616e63652050726f746f636f6c202d2044554d4d59",
              "id": 9323,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "2758:42:66",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_5c4837f8420c2a8423d33065abeba95b62388053f0bab017605196b03a41129f",
                "typeString": "literal_string \"Decentralized Insurance Protocol - DUMMY\""
              },
              "value": "Decentralized Insurance Protocol - DUMMY"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "f76f8d78",
            "id": 9327,
            "mutability": "constant",
            "name": "SYMBOL",
            "nameLocation": "2829:6:66",
            "nodeType": "VariableDeclaration",
            "scope": 9363,
            "src": "2806:37:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 9325,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "2806:6:66",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "444950",
              "id": 9326,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "2838:5:66",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_d238ec68acc8443a59aaf11baf3e3983604c4aac1b7adcfe802a126a2dec24fc",
                "typeString": "literal_string \"DIP\""
              },
              "value": "DIP"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "2e0f2625",
            "id": 9330,
            "mutability": "constant",
            "name": "DECIMALS",
            "nameLocation": "2871:8:66",
            "nodeType": "VariableDeclaration",
            "scope": 9363,
            "src": "2849:35:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 9328,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "2849:5:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "3138",
              "id": 9329,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "2882:2:66",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_18_by_1",
                "typeString": "int_const 18"
              },
              "value": "18"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "2ff2e9dc",
            "id": 9339,
            "mutability": "constant",
            "name": "INITIAL_SUPPLY",
            "nameLocation": "2914:14:66",
            "nodeType": "VariableDeclaration",
            "scope": 9363,
            "src": "2890:61:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 9331,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "2890:7:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "commonType": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              },
              "id": 9338,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "leftExpression": {
                "commonType": {
                  "typeIdentifier": "t_rational_1000000000_by_1",
                  "typeString": "int_const 1000000000"
                },
                "id": 9334,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "leftExpression": {
                  "hexValue": "3130",
                  "id": 9332,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "2931:2:66",
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_10_by_1",
                    "typeString": "int_const 10"
                  },
                  "value": "10"
                },
                "nodeType": "BinaryOperation",
                "operator": "**",
                "rightExpression": {
                  "hexValue": "39",
                  "id": 9333,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "2935:1:66",
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_9_by_1",
                    "typeString": "int_const 9"
                  },
                  "value": "9"
                },
                "src": "2931:5:66",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_1000000000_by_1",
                  "typeString": "int_const 1000000000"
                }
              },
              "nodeType": "BinaryOperation",
              "operator": "*",
              "rightExpression": {
                "commonType": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "id": 9337,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "leftExpression": {
                  "hexValue": "3130",
                  "id": 9335,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "2939:2:66",
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_10_by_1",
                    "typeString": "int_const 10"
                  },
                  "value": "10"
                },
                "nodeType": "BinaryOperation",
                "operator": "**",
                "rightExpression": {
                  "id": 9336,
                  "name": "DECIMALS",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 9330,
                  "src": "2943:8:66",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  }
                },
                "src": "2939:12:66",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "src": "2931:20:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "public"
          },
          {
            "body": {
              "id": 9352,
              "nodeType": "Block",
              "src": "3081:89:66",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 9347,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15638,
                          "src": "3110:10:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                            "typeString": "function () view returns (address)"
                          }
                        },
                        "id": 9348,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3110:12:66",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9349,
                        "name": "INITIAL_SUPPLY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9339,
                        "src": "3136:14:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 9346,
                      "name": "_mint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15443,
                      "src": "3091:5:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 9350,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3091:69:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9351,
                  "nodeType": "ExpressionStatement",
                  "src": "3091:69:66"
                }
              ]
            },
            "id": 9353,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 9342,
                    "name": "NAME",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9324,
                    "src": "3063:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  {
                    "id": 9343,
                    "name": "SYMBOL",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9327,
                    "src": "3069:6:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  }
                ],
                "id": 9344,
                "modifierName": {
                  "id": 9341,
                  "name": "ERC20",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 15626,
                  "src": "3057:5:66"
                },
                "nodeType": "ModifierInvocation",
                "src": "3057:19:66"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9340,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3046:2:66"
            },
            "returnParameters": {
              "id": 9345,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3081:0:66"
            },
            "scope": 9363,
            "src": "3035:135:66",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15115
            ],
            "body": {
              "id": 9361,
              "nodeType": "Block",
              "src": "3232:32:66",
              "statements": [
                {
                  "expression": {
                    "id": 9359,
                    "name": "DECIMALS",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9330,
                    "src": "3249:8:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 9358,
                  "id": 9360,
                  "nodeType": "Return",
                  "src": "3242:15:66"
                }
              ]
            },
            "functionSelector": "313ce567",
            "id": 9362,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decimals",
            "nameLocation": "3185:8:66",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9355,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3208:8:66"
            },
            "parameters": {
              "id": 9354,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3193:2:66"
            },
            "returnParameters": {
              "id": 9358,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9357,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 9362,
                  "src": "3225:5:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 9356,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "3225:5:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3224:7:66"
            },
            "scope": 9363,
            "src": "3176:88:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 9364,
        "src": "2609:657:66"
      }
    ],
    "src": "39:3228:66"
  },
  "bytecode": "60806040523480156200001157600080fd5b5060405180606001604052806028815260200162000ee8602891396040518060400160405280600381526020016204449560ec1b815250816003908051906020019062000060929190620001a3565b50805162000076906004906020840190620001a3565b505050620000b16200008d620000b760201b60201c565b6200009b6012600a620002b1565b620000ab90633b9aca00620003a9565b620000bb565b6200041e565b3390565b6001600160a01b038216620001165760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200012a919062000249565b90915550506001600160a01b038216600090815260208190526040812080548392906200015990849062000249565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001b190620003cb565b90600052602060002090601f016020900481019282620001d5576000855562000220565b82601f10620001f057805160ff191683800117855562000220565b8280016001018555821562000220579182015b828111156200022057825182559160200191906001019062000203565b506200022e92915062000232565b5090565b5b808211156200022e576000815560010162000233565b600082198211156200025f576200025f62000408565b500190565b80825b6001808611620002785750620002a8565b8187048211156200028d576200028d62000408565b808616156200029b57918102915b9490941c93800262000267565b94509492505050565b6000620002c560001960ff851684620002cc565b9392505050565b600082620002dd57506001620002c5565b81620002ec57506000620002c5565b8160018114620003055760028114620003105762000344565b6001915050620002c5565b60ff84111562000324576200032462000408565b6001841b9150848211156200033d576200033d62000408565b50620002c5565b5060208310610133831016604e8410600b84101617156200037c575081810a8381111562000376576200037662000408565b620002c5565b6200038b848484600162000264565b808604821115620003a057620003a062000408565b02949350505050565b6000816000190483118215151615620003c657620003c662000408565b500290565b600281046001821680620003e057607f821691505b602082108114156200040257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b610aba806200042e6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80633950935111610097578063a457c2d711610066578063a457c2d7146101bf578063a9059cbb146101d2578063dd62ed3e146101e5578063f76f8d78146101f8576100f5565b8063395093511461018957806370a082311461019c57806395d89b41146101af578063a3f4df7e146101b7576100f5565b806323b872dd116100d357806323b872dd1461014d5780632e0f2625146101605780632ff2e9dc1461017a578063313ce56714610182576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd1461013b575b600080fd5b61010261021a565b60405161010f919061086a565b60405180910390f35b61012b610126366004610841565b6102ac565b604051901515815260200161010f565b6002545b60405190815260200161010f565b61012b61015b366004610806565b6102c4565b610168601281565b60405160ff909116815260200161010f565b61013f6102ea565b6012610168565b61012b610197366004610841565b610307565b61013f6101aa3660046107ba565b610329565b610102610348565b610102610357565b61012b6101cd366004610841565b610373565b61012b6101e0366004610841565b6103fe565b61013f6101f33660046107d4565b61040c565b6101026040518060400160405280600381526020016204449560ec1b81525081565b60606003805461022990610a0b565b80601f016020809104026020016040519081016040528092919081815260200182805461025590610a0b565b80156102a25780601f10610277576101008083540402835291602001916102a2565b820191906000526020600020905b81548152906001019060200180831161028557829003601f168201915b5050505050905090565b6000336102ba818585610437565b5060019392505050565b6000336102d285828561055b565b6102dd8585856105d5565b60019150505b9392505050565b6102f66012600a61091b565b61030490633b9aca006109ec565b81565b6000336102ba81858561031a838361040c565b61032491906108bd565b610437565b6001600160a01b0381166000908152602081905260409020545b919050565b60606004805461022990610a0b565b604051806060016040528060288152602001610a5d6028913981565b60003381610381828661040c565b9050838110156103e65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6103f38286868403610437565b506001949350505050565b6000336102ba8185856105d5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104995760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103dd565b6001600160a01b0382166104fa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103dd565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610567848461040c565b905060001981146105cf57818110156105c25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103dd565b6105cf8484848403610437565b50505050565b6001600160a01b0383166106395760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103dd565b6001600160a01b03821661069b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103dd565b6001600160a01b038316600090815260208190526040902054818110156107135760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103dd565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061074a9084906108bd565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161079691815260200190565b60405180910390a36105cf565b80356001600160a01b038116811461034357600080fd5b6000602082840312156107cb578081fd5b6102e3826107a3565b600080604083850312156107e6578081fd5b6107ef836107a3565b91506107fd602084016107a3565b90509250929050565b60008060006060848603121561081a578081fd5b610823846107a3565b9250610831602085016107a3565b9150604084013590509250925092565b60008060408385031215610853578182fd5b61085c836107a3565b946020939093013593505050565b6000602080835283518082850152825b818110156108965785810183015185820160400152820161087a565b818111156108a75783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108d0576108d0610a46565b500190565b80825b60018086116108e75750610912565b8187048211156108f9576108f9610a46565b8086161561090657918102915b9490941c9380026108d8565b94509492505050565b60006102e360001960ff851684600082610937575060016102e3565b81610944575060006102e3565b816001811461095a576002811461096457610991565b60019150506102e3565b60ff84111561097557610975610a46565b6001841b91508482111561098b5761098b610a46565b506102e3565b5060208310610133831016604e8410600b84101617156109c4575081810a838111156109bf576109bf610a46565b6102e3565b6109d184848460016108d5565b8086048211156109e3576109e3610a46565b02949350505050565b6000816000190483118215151615610a0657610a06610a46565b500290565b600281046001821680610a1f57607f821691505b60208210811415610a4057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfe446563656e7472616c697a656420496e737572616e63652050726f746f636f6c202d2044554d4d59a26469706673582212201bd389f6783dbac2df7bbda9df77f8c212aa757f24a6a8c94ff13a4e41ab97a564736f6c63430008020033446563656e7472616c697a656420496e737572616e63652050726f746f636f6c202d2044554d4d59",
  "bytecodeSha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.2+commit.661d1103"
  },
  "contractName": "DIP",
  "coverageMap": {
    "branches": {
      "11": {},
      "3": {
        "ERC20._approve": {
          "30": [
            10241,
            10260,
            true
          ],
          "31": [
            10319,
            10340,
            true
          ]
        },
        "ERC20._spendAllowance": {
          "32": [
            10957,
            10994,
            false
          ],
          "33": [
            11018,
            11044,
            true
          ]
        },
        "ERC20._transfer": {
          "34": [
            7601,
            7619,
            true
          ],
          "35": [
            7679,
            7695,
            true
          ],
          "36": [
            7850,
            7871,
            true
          ]
        },
        "ERC20.decreaseAllowance": {
          "29": [
            6811,
            6846,
            true
          ]
        }
      },
      "4": {},
      "5": {},
      "66": {}
    },
    "statements": {
      "11": {
        "Context._msgSender": {
          "2": [
            712,
            729
          ]
        }
      },
      "3": {
        "ERC20._approve": {
          "16": [
            10233,
            10301
          ],
          "17": [
            10311,
            10379
          ],
          "18": [
            10390,
            10426
          ],
          "19": [
            10436,
            10473
          ]
        },
        "ERC20._spendAllowance": {
          "20": [
            11010,
            11078
          ],
          "21": [
            11120,
            11171
          ]
        },
        "ERC20._transfer": {
          "22": [
            7593,
            7661
          ],
          "23": [
            7671,
            7735
          ],
          "24": [
            7842,
            7914
          ],
          "25": [
            7948,
            7986
          ],
          "26": [
            8006,
            8029
          ],
          "27": [
            8040,
            8071
          ],
          "28": [
            8082,
            8119
          ]
        },
        "ERC20.allowance": {
          "15": [
            4084,
            4118
          ]
        },
        "ERC20.approve": {
          "3": [
            4570,
            4602
          ],
          "4": [
            4612,
            4623
          ]
        },
        "ERC20.balanceOf": {
          "9": [
            3501,
            3526
          ]
        },
        "ERC20.decreaseAllowance": {
          "11": [
            6803,
            6888
          ],
          "12": [
            6922,
            6982
          ],
          "13": [
            7003,
            7014
          ]
        },
        "ERC20.increaseAllowance": {
          "8": [
            6015,
            6079
          ]
        },
        "ERC20.name": {
          "1": [
            2235,
            2247
          ]
        },
        "ERC20.symbol": {
          "10": [
            2448,
            2462
          ]
        },
        "ERC20.totalSupply": {
          "0": [
            3324,
            3343
          ]
        },
        "ERC20.transfer": {
          "14": [
            3862,
            3890
          ]
        },
        "ERC20.transferFrom": {
          "5": [
            5375,
            5413
          ],
          "6": [
            5423,
            5450
          ],
          "7": [
            5460,
            5471
          ]
        }
      },
      "4": {},
      "5": {},
      "66": {}
    }
  },
  "dependencies": [
    "OpenZeppelin/openzeppelin-contracts@4.7.3/Context",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/ERC20",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/IERC20",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/IERC20Metadata"
  ],
  "deployedBytecode": "608060405234801561001057600080fd5b50600436106100f55760003560e01c80633950935111610097578063a457c2d711610066578063a457c2d7146101bf578063a9059cbb146101d2578063dd62ed3e146101e5578063f76f8d78146101f8576100f5565b8063395093511461018957806370a082311461019c57806395d89b41146101af578063a3f4df7e146101b7576100f5565b806323b872dd116100d357806323b872dd1461014d5780632e0f2625146101605780632ff2e9dc1461017a578063313ce56714610182576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd1461013b575b600080fd5b61010261021a565b60405161010f919061086a565b60405180910390f35b61012b610126366004610841565b6102ac565b604051901515815260200161010f565b6002545b60405190815260200161010f565b61012b61015b366004610806565b6102c4565b610168601281565b60405160ff909116815260200161010f565b61013f6102ea565b6012610168565b61012b610197366004610841565b610307565b61013f6101aa3660046107ba565b610329565b610102610348565b610102610357565b61012b6101cd366004610841565b610373565b61012b6101e0366004610841565b6103fe565b61013f6101f33660046107d4565b61040c565b6101026040518060400160405280600381526020016204449560ec1b81525081565b60606003805461022990610a0b565b80601f016020809104026020016040519081016040528092919081815260200182805461025590610a0b565b80156102a25780601f10610277576101008083540402835291602001916102a2565b820191906000526020600020905b81548152906001019060200180831161028557829003601f168201915b5050505050905090565b6000336102ba818585610437565b5060019392505050565b6000336102d285828561055b565b6102dd8585856105d5565b60019150505b9392505050565b6102f66012600a61091b565b61030490633b9aca006109ec565b81565b6000336102ba81858561031a838361040c565b61032491906108bd565b610437565b6001600160a01b0381166000908152602081905260409020545b919050565b60606004805461022990610a0b565b604051806060016040528060288152602001610a5d6028913981565b60003381610381828661040c565b9050838110156103e65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6103f38286868403610437565b506001949350505050565b6000336102ba8185856105d5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104995760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103dd565b6001600160a01b0382166104fa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103dd565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610567848461040c565b905060001981146105cf57818110156105c25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103dd565b6105cf8484848403610437565b50505050565b6001600160a01b0383166106395760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103dd565b6001600160a01b03821661069b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103dd565b6001600160a01b038316600090815260208190526040902054818110156107135760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103dd565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061074a9084906108bd565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161079691815260200190565b60405180910390a36105cf565b80356001600160a01b038116811461034357600080fd5b6000602082840312156107cb578081fd5b6102e3826107a3565b600080604083850312156107e6578081fd5b6107ef836107a3565b91506107fd602084016107a3565b90509250929050565b60008060006060848603121561081a578081fd5b610823846107a3565b9250610831602085016107a3565b9150604084013590509250925092565b60008060408385031215610853578182fd5b61085c836107a3565b946020939093013593505050565b6000602080835283518082850152825b818110156108965785810183015185820160400152820161087a565b818111156108a75783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108d0576108d0610a46565b500190565b80825b60018086116108e75750610912565b8187048211156108f9576108f9610a46565b8086161561090657918102915b9490941c9380026108d8565b94509492505050565b60006102e360001960ff851684600082610937575060016102e3565b81610944575060006102e3565b816001811461095a576002811461096457610991565b60019150506102e3565b60ff84111561097557610975610a46565b6001841b91508482111561098b5761098b610a46565b506102e3565b5060208310610133831016604e8410600b84101617156109c4575081810a838111156109bf576109bf610a46565b6102e3565b6109d184848460016108d5565b8086048211156109e3576109e3610a46565b02949350505050565b6000816000190483118215151615610a0657610a06610a46565b500290565b600281046001821680610a1f57607f821691505b60208210811415610a4057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfe446563656e7472616c697a656420496e737572616e63652050726f746f636f6c202d2044554d4d59a26469706673582212201bd389f6783dbac2df7bbda9df77f8c212aa757f24a6a8c94ff13a4e41ab97a564736f6c63430008020033",
  "deployedSourceMap": "2609:657:66:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1445:14:67;;1438:22;1420:41;;1408:2;1393:18;4433:197:3;1375:92:67;3244:106:3;3331:12;;3244:106;;;5015:25:67;;;5003:2;4988:18;3244:106:3;4970:76:67;5192:286:3;;;;;;:::i;:::-;;:::i;2849:35:66:-;;2882:2;2849:35;;;;;5223:4:67;5211:17;;;5193:36;;5181:2;5166:18;2849:35:66;5148:87:67;2890:61:66;;;:::i;3176:88::-;2882:2;3176:88;;5873:234:3;;;;;;:::i;:::-;;:::i;3408:125::-;;;;;;:::i;:::-;;:::i;2367:102::-;;;:::i;2728:72:66:-;;;:::i;6594:427:3:-;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;;:::i;2806:37:66:-;;;;;;;;;;;;;;;-1:-1:-1;;;2806:37:66;;;;;2156:98:3;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:11;4570:32:3;719:10:11;4586:7:3;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:3;;4433:197;-1:-1:-1;;;4433:197:3:o;5192:286::-;5319:4;719:10:11;5375:38:3;5391:4;719:10:11;5406:6:3;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;5467:4;5460:11;;;5192:286;;;;;;:::o;2890:61:66:-;2939:12;2882:2;2939;:12;:::i;:::-;2931:20;;:5;:20;:::i;:::-;2890:61;:::o;5873:234:3:-;5961:4;719:10:11;6015:64:3;719:10:11;6031:7:3;6068:10;6040:25;719:10:11;6031:7:3;6040:9;:25::i;:::-;:38;;;;:::i;:::-;6015:8;:64::i;3408:125::-;-1:-1:-1;;;;;3508:18:3;;3482:7;3508:18;;;;;;;;;;;3408:125;;;;:::o;2367:102::-;2423:13;2455:7;2448:14;;;;;:::i;2728:72:66:-;;;;;;;;;;;;;;;;;;;:::o;6594:427:3:-;6687:4;719:10:11;6687:4:3;6768:25;719:10:11;6785:7:3;6768:9;:25::i;:::-;6741:52;;6831:15;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:3;;4665:2:67;6803:85:3;;;4647:21:67;4704:2;4684:18;;;4677:30;4743:34;4723:18;;;4716:62;-1:-1:-1;;;4794:18:67;;;4787:35;4839:19;;6803:85:3;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;:::-;-1:-1:-1;7010:4:3;;6594:427;-1:-1:-1;;;;6594:427:3:o;3729:189::-;3808:4;719:10:11;3862:28:3;719:10:11;3879:2:3;3883:6;3862:9;:28::i;3976:149::-;-1:-1:-1;;;;;4091:18:3;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149::o;10110:370::-;-1:-1:-1;;;;;10241:19:3;;10233:68;;;;-1:-1:-1;;;10233:68:3;;4260:2:67;10233:68:3;;;4242:21:67;4299:2;4279:18;;;4272:30;4338:34;4318:18;;;4311:62;-1:-1:-1;;;4389:18:67;;;4382:34;4433:19;;10233:68:3;4232:226:67;10233:68:3;-1:-1:-1;;;;;10319:21:3;;10311:68;;;;-1:-1:-1;;;10311:68:3;;2686:2:67;10311:68:3;;;2668:21:67;2725:2;2705:18;;;2698:30;2764:34;2744:18;;;2737:62;-1:-1:-1;;;2815:18:67;;;2808:32;2857:19;;10311:68:3;2658:224:67;10311:68:3;-1:-1:-1;;;;;10390:18:3;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;5015:25:67;;;10441:32:3;;4988:18:67;10441:32:3;;;;;;;10110:370;;;:::o;10761:441::-;10891:24;10918:25;10928:5;10935:7;10918:9;:25::i;:::-;10891:52;;-1:-1:-1;;10957:16:3;:37;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:3;;3089:2:67;11010:68:3;;;3071:21:67;3128:2;3108:18;;;3101:30;3167:31;3147:18;;;3140:59;3216:18;;11010:68:3;3061:179:67;11010:68:3;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10761:441;;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:3;;7593:68;;;;-1:-1:-1;;;7593:68:3;;3854:2:67;7593:68:3;;;3836:21:67;3893:2;3873:18;;;3866:30;3932:34;3912:18;;;3905:62;-1:-1:-1;;;3983:18:67;;;3976:35;4028:19;;7593:68:3;3826:227:67;7593:68:3;-1:-1:-1;;;;;7679:16:3;;7671:64;;;;-1:-1:-1;;;7671:64:3;;2282:2:67;7671:64:3;;;2264:21:67;2321:2;2301:18;;;2294:30;2360:34;2340:18;;;2333:62;-1:-1:-1;;;2411:18:67;;;2404:33;2454:19;;7671:64:3;2254:225:67;7671:64:3;-1:-1:-1;;;;;7817:15:3;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:3;;3447:2:67;7842:72:3;;;3429:21:67;3486:2;3466:18;;;3459:30;3525:34;3505:18;;;3498:62;-1:-1:-1;;;3576:18:67;;;3569:36;3622:19;;7842:72:3;3419:228:67;7842:72:3;-1:-1:-1;;;;;7948:15:3;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:3;8054:4;-1:-1:-1;;;;;8045:26:3;;8064:6;8045:26;;;;5015:25:67;;5003:2;4988:18;;4970:76;8045:26:3;;;;;;;;8082:37;11786:121;14:173:67;82:20;;-1:-1:-1;;;;;131:31:67;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;;;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:67:o;1472:603::-;;1613:2;1642;1631:9;1624:21;1674:6;1668:13;1717:6;1712:2;1701:9;1697:18;1690:34;1742:4;1755:140;1769:6;1766:1;1763:13;1755:140;;;1864:14;;;1860:23;;1854:30;1830:17;;;1849:2;1826:26;1819:66;1784:10;;1755:140;;;1913:6;1910:1;1907:13;1904:2;;;1983:4;1978:2;1969:6;1958:9;1954:22;1950:31;1943:45;1904:2;-1:-1:-1;2059:2:67;2038:15;-1:-1:-1;;2034:29:67;2019:45;;;;2066:2;2015:54;;1593:482;-1:-1:-1;;;1593:482:67:o;5240:128::-;;5311:1;5307:6;5304:1;5301:13;5298:2;;;5317:18;;:::i;:::-;-1:-1:-1;5353:9:67;;5288:80::o;5373:453::-;5469:6;5492:5;5506:314;5555:1;5592:2;5582:8;5579:16;5569:2;;5599:5;;;5569:2;5640:4;5635:3;5631:14;5625:4;5622:24;5619:2;;;5649:18;;:::i;:::-;5699:2;5689:8;5685:17;5682:2;;;5714:16;;;;5682:2;5793:17;;;;;5753:15;;5506:314;;;5450:376;;;;;;;:::o;5831:148::-;;5918:55;-1:-1:-1;;5959:4:67;5945:19;;5939:4;5984:922;6068:8;6058:2;;-1:-1:-1;6109:1:67;6123:5;;6058:2;6157:4;6147:2;;-1:-1:-1;6194:1:67;6208:5;;6147:2;6239:4;6257:1;6252:59;;;;6325:1;6320:183;;;;6232:271;;6252:59;6282:1;6273:10;;6296:5;;;6320:183;6357:3;6347:8;6344:17;6341:2;;;6364:18;;:::i;:::-;6420:1;6410:8;6406:16;6397:25;;6448:3;6441:5;6438:14;6435:2;;;6455:18;;:::i;:::-;6488:5;;;6232:271;;6587:2;6577:8;6574:16;6568:3;6562:4;6559:13;6555:36;6549:2;6539:8;6536:16;6531:2;6525:4;6522:12;6518:35;6515:77;6512:2;;;-1:-1:-1;6624:19:67;;;6659:14;;;6656:2;;;6676:18;;:::i;:::-;6709:5;;6512:2;6756:42;6794:3;6784:8;6778:4;6775:1;6756:42;:::i;:::-;6831:6;6826:3;6822:16;6813:7;6810:29;6807:2;;;6842:18;;:::i;:::-;6880:20;;6048:858;-1:-1:-1;;;;6048:858:67:o;6911:168::-;;7017:1;7013;7009:6;7005:14;7002:1;6999:21;6994:1;6987:9;6980:17;6976:45;6973:2;;;7024:18;;:::i;:::-;-1:-1:-1;7064:9:67;;6963:116::o;7084:380::-;7169:1;7159:12;;7216:1;7206:12;;;7227:2;;7281:4;7273:6;7269:17;7259:27;;7227:2;7334;7326:6;7323:14;7303:18;7300:38;7297:2;;;7380:10;7375:3;7371:20;7368:1;7361:31;7415:4;7412:1;7405:15;7443:4;7440:1;7433:15;7297:2;;7139:325;;;:::o;7469:127::-;7530:10;7525:3;7521:20;7518:1;7511:31;7561:4;7558:1;7551:15;7585:4;7582:1;7575:15",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {
      "allowance(address,address)": {
        "details": "See {IERC20-allowance}."
      },
      "approve(address,uint256)": {
        "details": "See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."
      },
      "balanceOf(address)": {
        "details": "See {IERC20-balanceOf}."
      },
      "decimals()": {
        "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."
      },
      "decreaseAllowance(address,uint256)": {
        "details": "Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."
      },
      "increaseAllowance(address,uint256)": {
        "details": "Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."
      },
      "name()": {
        "details": "Returns the name of the token."
      },
      "symbol()": {
        "details": "Returns the symbol of the token, usually a shorter version of the name."
      },
      "totalSupply()": {
        "details": "See {IERC20-totalSupply}."
      },
      "transfer(address,uint256)": {
        "details": "See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."
      },
      "transferFrom(address,address,uint256)": {
        "details": "See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."
      }
    },
    "version": 1
  },
  "offset": [
    2609,
    3266
  ],
  "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF5 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1D2 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1E5 JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x1F8 JUMPI PUSH2 0xF5 JUMP JUMPDEST DUP1 PUSH4 0x39509351 EQ PUSH2 0x189 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x19C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1AF JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x1B7 JUMPI PUSH2 0xF5 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x14D JUMPI DUP1 PUSH4 0x2E0F2625 EQ PUSH2 0x160 JUMPI DUP1 PUSH4 0x2FF2E9DC EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x182 JUMPI PUSH2 0xF5 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x13B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x102 PUSH2 0x21A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10F SWAP2 SWAP1 PUSH2 0x86A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x12B PUSH2 0x126 CALLDATASIZE PUSH1 0x4 PUSH2 0x841 JUMP JUMPDEST PUSH2 0x2AC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10F JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10F JUMP JUMPDEST PUSH2 0x12B PUSH2 0x15B CALLDATASIZE PUSH1 0x4 PUSH2 0x806 JUMP JUMPDEST PUSH2 0x2C4 JUMP JUMPDEST PUSH2 0x168 PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10F JUMP JUMPDEST PUSH2 0x13F PUSH2 0x2EA JUMP JUMPDEST PUSH1 0x12 PUSH2 0x168 JUMP JUMPDEST PUSH2 0x12B PUSH2 0x197 CALLDATASIZE PUSH1 0x4 PUSH2 0x841 JUMP JUMPDEST PUSH2 0x307 JUMP JUMPDEST PUSH2 0x13F PUSH2 0x1AA CALLDATASIZE PUSH1 0x4 PUSH2 0x7BA JUMP JUMPDEST PUSH2 0x329 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x348 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x357 JUMP JUMPDEST PUSH2 0x12B PUSH2 0x1CD CALLDATASIZE PUSH1 0x4 PUSH2 0x841 JUMP JUMPDEST PUSH2 0x373 JUMP JUMPDEST PUSH2 0x12B PUSH2 0x1E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x841 JUMP JUMPDEST PUSH2 0x3FE JUMP JUMPDEST PUSH2 0x13F PUSH2 0x1F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x7D4 JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH2 0x102 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x44495 PUSH1 0xEC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x229 SWAP1 PUSH2 0xA0B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x255 SWAP1 PUSH2 0xA0B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2A2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x277 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2A2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x285 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2BA DUP2 DUP6 DUP6 PUSH2 0x437 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2D2 DUP6 DUP3 DUP6 PUSH2 0x55B JUMP JUMPDEST PUSH2 0x2DD DUP6 DUP6 DUP6 PUSH2 0x5D5 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x2F6 PUSH1 0x12 PUSH1 0xA PUSH2 0x91B JUMP JUMPDEST PUSH2 0x304 SWAP1 PUSH4 0x3B9ACA00 PUSH2 0x9EC JUMP JUMPDEST DUP2 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2BA DUP2 DUP6 DUP6 PUSH2 0x31A DUP4 DUP4 PUSH2 0x40C JUMP JUMPDEST PUSH2 0x324 SWAP2 SWAP1 PUSH2 0x8BD JUMP JUMPDEST PUSH2 0x437 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x229 SWAP1 PUSH2 0xA0B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xA5D PUSH1 0x28 SWAP2 CODECOPY DUP2 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x381 DUP3 DUP7 PUSH2 0x40C JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x3E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3F3 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x437 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2BA DUP2 DUP6 DUP6 PUSH2 0x5D5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x499 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3DD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4FA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3DD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x567 DUP5 DUP5 PUSH2 0x40C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x5CF JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x5C2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3DD JUMP JUMPDEST PUSH2 0x5CF DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x437 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x639 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3DD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x69B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3DD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x713 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3DD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x74A SWAP1 DUP5 SWAP1 PUSH2 0x8BD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x796 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x5CF JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x343 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7CB JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2E3 DUP3 PUSH2 0x7A3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7E6 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7EF DUP4 PUSH2 0x7A3 JUMP JUMPDEST SWAP2 POP PUSH2 0x7FD PUSH1 0x20 DUP5 ADD PUSH2 0x7A3 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x81A JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x823 DUP5 PUSH2 0x7A3 JUMP JUMPDEST SWAP3 POP PUSH2 0x831 PUSH1 0x20 DUP6 ADD PUSH2 0x7A3 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x853 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x85C DUP4 PUSH2 0x7A3 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x896 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x87A JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x8A7 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x8D0 JUMPI PUSH2 0x8D0 PUSH2 0xA46 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP1 DUP7 GT PUSH2 0x8E7 JUMPI POP PUSH2 0x912 JUMP JUMPDEST DUP2 DUP8 DIV DUP3 GT ISZERO PUSH2 0x8F9 JUMPI PUSH2 0x8F9 PUSH2 0xA46 JUMP JUMPDEST DUP1 DUP7 AND ISZERO PUSH2 0x906 JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP5 SWAP1 SWAP5 SHR SWAP4 DUP1 MUL PUSH2 0x8D8 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E3 PUSH1 0x0 NOT PUSH1 0xFF DUP6 AND DUP5 PUSH1 0x0 DUP3 PUSH2 0x937 JUMPI POP PUSH1 0x1 PUSH2 0x2E3 JUMP JUMPDEST DUP2 PUSH2 0x944 JUMPI POP PUSH1 0x0 PUSH2 0x2E3 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x95A JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x964 JUMPI PUSH2 0x991 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x2E3 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x975 JUMPI PUSH2 0x975 PUSH2 0xA46 JUMP JUMPDEST PUSH1 0x1 DUP5 SHL SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0x98B JUMPI PUSH2 0x98B PUSH2 0xA46 JUMP JUMPDEST POP PUSH2 0x2E3 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x9C4 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0x9BF JUMPI PUSH2 0x9BF PUSH2 0xA46 JUMP JUMPDEST PUSH2 0x2E3 JUMP JUMPDEST PUSH2 0x9D1 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x8D5 JUMP JUMPDEST DUP1 DUP7 DIV DUP3 GT ISZERO PUSH2 0x9E3 JUMPI PUSH2 0x9E3 PUSH2 0xA46 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0xA06 JUMPI PUSH2 0xA06 PUSH2 0xA46 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xA1F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0xA40 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID DIFFICULTY PUSH6 0x63656E747261 PUSH13 0x697A656420496E737572616E63 PUSH6 0x2050726F746F PUSH4 0x6F6C202D KECCAK256 DIFFICULTY SSTORE 0x4D 0x4D MSIZE LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL 0xD3 DUP10 0xF6 PUSH25 0x3DBAC2DF7BBDA9DF77F8C212AA757F24A6A8C94FF13A4E41AB SWAP8 0xA5 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ",
  "pcMap": {
    "0": {
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x80"
    },
    "2": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x40"
    },
    "4": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "MSTORE",
      "path": "66"
    },
    "5": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "CALLVALUE",
      "path": "66"
    },
    "6": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "7": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "ISZERO",
      "path": "66"
    },
    "8": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x10"
    },
    "11": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPI",
      "path": "66"
    },
    "12": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x0"
    },
    "14": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "15": {
      "dev": "Cannot send ether to nonpayable function",
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "REVERT",
      "path": "66"
    },
    "16": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPDEST",
      "path": "66"
    },
    "17": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "POP",
      "path": "66"
    },
    "18": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x4"
    },
    "20": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "CALLDATASIZE",
      "path": "66"
    },
    "21": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "LT",
      "path": "66"
    },
    "22": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0xF5"
    },
    "25": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPI",
      "path": "66"
    },
    "26": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x0"
    },
    "28": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "CALLDATALOAD",
      "path": "66"
    },
    "29": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0xE0"
    },
    "31": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "SHR",
      "path": "66"
    },
    "32": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "33": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH4",
      "path": "66",
      "value": "0x39509351"
    },
    "38": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "GT",
      "path": "66"
    },
    "39": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x97"
    },
    "42": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPI",
      "path": "66"
    },
    "43": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "44": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH4",
      "path": "66",
      "value": "0xA457C2D7"
    },
    "49": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "GT",
      "path": "66"
    },
    "50": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x66"
    },
    "53": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPI",
      "path": "66"
    },
    "54": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "55": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH4",
      "path": "66",
      "value": "0xA457C2D7"
    },
    "60": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "EQ",
      "path": "66"
    },
    "61": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x1BF"
    },
    "64": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPI",
      "path": "66"
    },
    "65": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "66": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH4",
      "path": "66",
      "value": "0xA9059CBB"
    },
    "71": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "EQ",
      "path": "66"
    },
    "72": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x1D2"
    },
    "75": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPI",
      "path": "66"
    },
    "76": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "77": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH4",
      "path": "66",
      "value": "0xDD62ED3E"
    },
    "82": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "EQ",
      "path": "66"
    },
    "83": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x1E5"
    },
    "86": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPI",
      "path": "66"
    },
    "87": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "88": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH4",
      "path": "66",
      "value": "0xF76F8D78"
    },
    "93": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "EQ",
      "path": "66"
    },
    "94": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x1F8"
    },
    "97": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPI",
      "path": "66"
    },
    "98": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0xF5"
    },
    "101": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMP",
      "path": "66"
    },
    "102": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPDEST",
      "path": "66"
    },
    "103": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "104": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH4",
      "path": "66",
      "value": "0x39509351"
    },
    "109": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "EQ",
      "path": "66"
    },
    "110": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x189"
    },
    "113": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPI",
      "path": "66"
    },
    "114": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "115": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH4",
      "path": "66",
      "value": "0x70A08231"
    },
    "120": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "EQ",
      "path": "66"
    },
    "121": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x19C"
    },
    "124": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPI",
      "path": "66"
    },
    "125": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "126": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH4",
      "path": "66",
      "value": "0x95D89B41"
    },
    "131": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "EQ",
      "path": "66"
    },
    "132": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x1AF"
    },
    "135": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPI",
      "path": "66"
    },
    "136": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "137": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH4",
      "path": "66",
      "value": "0xA3F4DF7E"
    },
    "142": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "EQ",
      "path": "66"
    },
    "143": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x1B7"
    },
    "146": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPI",
      "path": "66"
    },
    "147": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0xF5"
    },
    "150": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMP",
      "path": "66"
    },
    "151": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPDEST",
      "path": "66"
    },
    "152": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "153": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH4",
      "path": "66",
      "value": "0x23B872DD"
    },
    "158": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "GT",
      "path": "66"
    },
    "159": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0xD3"
    },
    "162": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPI",
      "path": "66"
    },
    "163": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "164": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH4",
      "path": "66",
      "value": "0x23B872DD"
    },
    "169": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "EQ",
      "path": "66"
    },
    "170": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x14D"
    },
    "173": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPI",
      "path": "66"
    },
    "174": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "175": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH4",
      "path": "66",
      "value": "0x2E0F2625"
    },
    "180": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "EQ",
      "path": "66"
    },
    "181": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x160"
    },
    "184": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPI",
      "path": "66"
    },
    "185": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "186": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH4",
      "path": "66",
      "value": "0x2FF2E9DC"
    },
    "191": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "EQ",
      "path": "66"
    },
    "192": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x17A"
    },
    "195": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPI",
      "path": "66"
    },
    "196": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "197": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH4",
      "path": "66",
      "value": "0x313CE567"
    },
    "202": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "EQ",
      "path": "66"
    },
    "203": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x182"
    },
    "206": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPI",
      "path": "66"
    },
    "207": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0xF5"
    },
    "210": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMP",
      "path": "66"
    },
    "211": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPDEST",
      "path": "66"
    },
    "212": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "213": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH4",
      "path": "66",
      "value": "0x6FDDE03"
    },
    "218": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "EQ",
      "path": "66"
    },
    "219": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0xFA"
    },
    "222": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPI",
      "path": "66"
    },
    "223": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "224": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH4",
      "path": "66",
      "value": "0x95EA7B3"
    },
    "229": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "EQ",
      "path": "66"
    },
    "230": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x118"
    },
    "233": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPI",
      "path": "66"
    },
    "234": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "235": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH4",
      "path": "66",
      "value": "0x18160DDD"
    },
    "240": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "EQ",
      "path": "66"
    },
    "241": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x13B"
    },
    "244": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPI",
      "path": "66"
    },
    "245": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "JUMPDEST",
      "path": "66"
    },
    "246": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x0"
    },
    "248": {
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "DUP1",
      "path": "66"
    },
    "249": {
      "first_revert": true,
      "fn": null,
      "offset": [
        2609,
        3266
      ],
      "op": "REVERT",
      "path": "66"
    },
    "250": {
      "fn": "ERC20.name",
      "offset": [
        2156,
        2254
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "251": {
      "fn": "ERC20.name",
      "offset": [
        2156,
        2254
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x102"
    },
    "254": {
      "fn": "ERC20.name",
      "offset": [
        2156,
        2254
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x21A"
    },
    "257": {
      "fn": "ERC20.name",
      "jump": "i",
      "offset": [
        2156,
        2254
      ],
      "op": "JUMP",
      "path": "3"
    },
    "258": {
      "fn": "ERC20.name",
      "offset": [
        2156,
        2254
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "259": {
      "fn": "ERC20.name",
      "offset": [
        2156,
        2254
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "261": {
      "fn": "ERC20.name",
      "offset": [
        2156,
        2254
      ],
      "op": "MLOAD",
      "path": "3"
    },
    "262": {
      "fn": "ERC20.name",
      "offset": [
        2156,
        2254
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x10F"
    },
    "265": {
      "fn": "ERC20.name",
      "offset": [
        2156,
        2254
      ],
      "op": "SWAP2",
      "path": "3"
    },
    "266": {
      "fn": "ERC20.name",
      "offset": [
        2156,
        2254
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "267": {
      "fn": "ERC20.name",
      "offset": [
        2156,
        2254
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x86A"
    },
    "270": {
      "fn": "ERC20.name",
      "jump": "i",
      "offset": [
        2156,
        2254
      ],
      "op": "JUMP",
      "path": "3"
    },
    "271": {
      "fn": "ERC20.name",
      "offset": [
        2156,
        2254
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "272": {
      "fn": "ERC20.name",
      "offset": [
        2156,
        2254
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "274": {
      "fn": "ERC20.name",
      "offset": [
        2156,
        2254
      ],
      "op": "MLOAD",
      "path": "3"
    },
    "275": {
      "fn": "ERC20.name",
      "offset": [
        2156,
        2254
      ],
      "op": "DUP1",
      "path": "3"
    },
    "276": {
      "fn": "ERC20.name",
      "offset": [
        2156,
        2254
      ],
      "op": "SWAP2",
      "path": "3"
    },
    "277": {
      "fn": "ERC20.name",
      "offset": [
        2156,
        2254
      ],
      "op": "SUB",
      "path": "3"
    },
    "278": {
      "fn": "ERC20.name",
      "offset": [
        2156,
        2254
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "279": {
      "fn": "ERC20.name",
      "offset": [
        2156,
        2254
      ],
      "op": "RETURN",
      "path": "3"
    },
    "280": {
      "fn": "ERC20.approve",
      "offset": [
        4433,
        4630
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "281": {
      "fn": "ERC20.approve",
      "offset": [
        4433,
        4630
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x12B"
    },
    "284": {
      "fn": "ERC20.approve",
      "offset": [
        4433,
        4630
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x126"
    },
    "287": {
      "fn": "ERC20.approve",
      "offset": [
        4433,
        4630
      ],
      "op": "CALLDATASIZE",
      "path": "3"
    },
    "288": {
      "fn": "ERC20.approve",
      "offset": [
        4433,
        4630
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x4"
    },
    "290": {
      "fn": "ERC20.approve",
      "offset": [
        4433,
        4630
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x841"
    },
    "293": {
      "fn": "ERC20.approve",
      "jump": "i",
      "offset": [
        4433,
        4630
      ],
      "op": "JUMP",
      "path": "3"
    },
    "294": {
      "fn": "ERC20.approve",
      "offset": [
        4433,
        4630
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "295": {
      "fn": "ERC20.approve",
      "offset": [
        4433,
        4630
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x2AC"
    },
    "298": {
      "fn": "ERC20.approve",
      "jump": "i",
      "offset": [
        4433,
        4630
      ],
      "op": "JUMP",
      "path": "3"
    },
    "299": {
      "fn": "ERC20.approve",
      "offset": [
        4433,
        4630
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "300": {
      "fn": "ERC20.approve",
      "offset": [
        4433,
        4630
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "302": {
      "fn": "ERC20.approve",
      "offset": [
        4433,
        4630
      ],
      "op": "MLOAD",
      "path": "3"
    },
    "303": {
      "op": "SWAP1"
    },
    "304": {
      "op": "ISZERO"
    },
    "305": {
      "op": "ISZERO"
    },
    "306": {
      "op": "DUP2"
    },
    "307": {
      "op": "MSTORE"
    },
    "308": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "310": {
      "op": "ADD"
    },
    "311": {
      "fn": "ERC20.approve",
      "offset": [
        4433,
        4630
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x10F"
    },
    "314": {
      "op": "JUMP"
    },
    "315": {
      "fn": "ERC20.totalSupply",
      "offset": [
        3244,
        3350
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "316": {
      "fn": "ERC20.totalSupply",
      "offset": [
        3331,
        3343
      ],
      "op": "PUSH1",
      "path": "3",
      "statement": 0,
      "value": "0x2"
    },
    "318": {
      "fn": "ERC20.totalSupply",
      "offset": [
        3331,
        3343
      ],
      "op": "SLOAD",
      "path": "3"
    },
    "319": {
      "fn": "ERC20.totalSupply",
      "offset": [
        3244,
        3350
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "320": {
      "fn": "ERC20.totalSupply",
      "offset": [
        3244,
        3350
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "322": {
      "fn": "ERC20.totalSupply",
      "offset": [
        3244,
        3350
      ],
      "op": "MLOAD",
      "path": "3"
    },
    "323": {
      "op": "SWAP1"
    },
    "324": {
      "op": "DUP2"
    },
    "325": {
      "op": "MSTORE"
    },
    "326": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "328": {
      "op": "ADD"
    },
    "329": {
      "fn": "ERC20.totalSupply",
      "offset": [
        3244,
        3350
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x10F"
    },
    "332": {
      "op": "JUMP"
    },
    "333": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5192,
        5478
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "334": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5192,
        5478
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x12B"
    },
    "337": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5192,
        5478
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x15B"
    },
    "340": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5192,
        5478
      ],
      "op": "CALLDATASIZE",
      "path": "3"
    },
    "341": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5192,
        5478
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x4"
    },
    "343": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5192,
        5478
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x806"
    },
    "346": {
      "fn": "ERC20.transferFrom",
      "jump": "i",
      "offset": [
        5192,
        5478
      ],
      "op": "JUMP",
      "path": "3"
    },
    "347": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5192,
        5478
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "348": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5192,
        5478
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x2C4"
    },
    "351": {
      "fn": "ERC20.transferFrom",
      "jump": "i",
      "offset": [
        5192,
        5478
      ],
      "op": "JUMP",
      "path": "3"
    },
    "352": {
      "offset": [
        2849,
        2884
      ],
      "op": "JUMPDEST",
      "path": "66"
    },
    "353": {
      "fn": "ERC20.transferFrom",
      "offset": [
        2849,
        2884
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x168"
    },
    "356": {
      "offset": [
        2882,
        2884
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x12"
    },
    "358": {
      "offset": [
        2849,
        2884
      ],
      "op": "DUP2",
      "path": "66"
    },
    "359": {
      "fn": "ERC20.transferFrom",
      "offset": [
        2849,
        2884
      ],
      "op": "JUMP",
      "path": "66"
    },
    "360": {
      "fn": "ERC20.transferFrom",
      "offset": [
        2849,
        2884
      ],
      "op": "JUMPDEST",
      "path": "66"
    },
    "361": {
      "fn": "ERC20.transferFrom",
      "offset": [
        2849,
        2884
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x40"
    },
    "363": {
      "fn": "ERC20.transferFrom",
      "offset": [
        2849,
        2884
      ],
      "op": "MLOAD",
      "path": "66"
    },
    "364": {
      "op": "PUSH1",
      "value": "0xFF"
    },
    "366": {
      "op": "SWAP1"
    },
    "367": {
      "op": "SWAP2"
    },
    "368": {
      "op": "AND"
    },
    "369": {
      "op": "DUP2"
    },
    "370": {
      "op": "MSTORE"
    },
    "371": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "373": {
      "op": "ADD"
    },
    "374": {
      "offset": [
        2849,
        2884
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x10F"
    },
    "377": {
      "op": "JUMP"
    },
    "378": {
      "offset": [
        2890,
        2951
      ],
      "op": "JUMPDEST",
      "path": "66"
    },
    "379": {
      "fn": "ERC20.transferFrom",
      "offset": [
        2890,
        2951
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x13F"
    },
    "382": {
      "fn": "ERC20.transferFrom",
      "offset": [
        2890,
        2951
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x2EA"
    },
    "385": {
      "fn": "ERC20.transferFrom",
      "jump": "i",
      "offset": [
        2890,
        2951
      ],
      "op": "JUMP",
      "path": "66"
    },
    "386": {
      "fn": "DIP.decimals",
      "offset": [
        3176,
        3264
      ],
      "op": "JUMPDEST",
      "path": "66"
    },
    "387": {
      "offset": [
        2882,
        2884
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x12"
    },
    "389": {
      "fn": "DIP.decimals",
      "offset": [
        3176,
        3264
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x168"
    },
    "392": {
      "fn": "DIP.decimals",
      "offset": [
        3176,
        3264
      ],
      "op": "JUMP",
      "path": "66"
    },
    "393": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        5873,
        6107
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "394": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        5873,
        6107
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x12B"
    },
    "397": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        5873,
        6107
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x197"
    },
    "400": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        5873,
        6107
      ],
      "op": "CALLDATASIZE",
      "path": "3"
    },
    "401": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        5873,
        6107
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x4"
    },
    "403": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        5873,
        6107
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x841"
    },
    "406": {
      "fn": "ERC20.increaseAllowance",
      "jump": "i",
      "offset": [
        5873,
        6107
      ],
      "op": "JUMP",
      "path": "3"
    },
    "407": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        5873,
        6107
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "408": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        5873,
        6107
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x307"
    },
    "411": {
      "fn": "ERC20.increaseAllowance",
      "jump": "i",
      "offset": [
        5873,
        6107
      ],
      "op": "JUMP",
      "path": "3"
    },
    "412": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3408,
        3533
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "413": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3408,
        3533
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x13F"
    },
    "416": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3408,
        3533
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x1AA"
    },
    "419": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3408,
        3533
      ],
      "op": "CALLDATASIZE",
      "path": "3"
    },
    "420": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3408,
        3533
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x4"
    },
    "422": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3408,
        3533
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x7BA"
    },
    "425": {
      "fn": "ERC20.balanceOf",
      "jump": "i",
      "offset": [
        3408,
        3533
      ],
      "op": "JUMP",
      "path": "3"
    },
    "426": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3408,
        3533
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "427": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3408,
        3533
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x329"
    },
    "430": {
      "fn": "ERC20.balanceOf",
      "jump": "i",
      "offset": [
        3408,
        3533
      ],
      "op": "JUMP",
      "path": "3"
    },
    "431": {
      "fn": "ERC20.symbol",
      "offset": [
        2367,
        2469
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "432": {
      "fn": "ERC20.symbol",
      "offset": [
        2367,
        2469
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x102"
    },
    "435": {
      "fn": "ERC20.symbol",
      "offset": [
        2367,
        2469
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x348"
    },
    "438": {
      "fn": "ERC20.symbol",
      "jump": "i",
      "offset": [
        2367,
        2469
      ],
      "op": "JUMP",
      "path": "3"
    },
    "439": {
      "offset": [
        2728,
        2800
      ],
      "op": "JUMPDEST",
      "path": "66"
    },
    "440": {
      "fn": "ERC20.symbol",
      "offset": [
        2728,
        2800
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x102"
    },
    "443": {
      "fn": "ERC20.symbol",
      "offset": [
        2728,
        2800
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x357"
    },
    "446": {
      "fn": "ERC20.symbol",
      "jump": "i",
      "offset": [
        2728,
        2800
      ],
      "op": "JUMP",
      "path": "66"
    },
    "447": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6594,
        7021
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "448": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6594,
        7021
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x12B"
    },
    "451": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6594,
        7021
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x1CD"
    },
    "454": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6594,
        7021
      ],
      "op": "CALLDATASIZE",
      "path": "3"
    },
    "455": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6594,
        7021
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x4"
    },
    "457": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6594,
        7021
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x841"
    },
    "460": {
      "fn": "ERC20.decreaseAllowance",
      "jump": "i",
      "offset": [
        6594,
        7021
      ],
      "op": "JUMP",
      "path": "3"
    },
    "461": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6594,
        7021
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "462": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6594,
        7021
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x373"
    },
    "465": {
      "fn": "ERC20.decreaseAllowance",
      "jump": "i",
      "offset": [
        6594,
        7021
      ],
      "op": "JUMP",
      "path": "3"
    },
    "466": {
      "fn": "ERC20.transfer",
      "offset": [
        3729,
        3918
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "467": {
      "fn": "ERC20.transfer",
      "offset": [
        3729,
        3918
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x12B"
    },
    "470": {
      "fn": "ERC20.transfer",
      "offset": [
        3729,
        3918
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x1E0"
    },
    "473": {
      "fn": "ERC20.transfer",
      "offset": [
        3729,
        3918
      ],
      "op": "CALLDATASIZE",
      "path": "3"
    },
    "474": {
      "fn": "ERC20.transfer",
      "offset": [
        3729,
        3918
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x4"
    },
    "476": {
      "fn": "ERC20.transfer",
      "offset": [
        3729,
        3918
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x841"
    },
    "479": {
      "fn": "ERC20.transfer",
      "jump": "i",
      "offset": [
        3729,
        3918
      ],
      "op": "JUMP",
      "path": "3"
    },
    "480": {
      "fn": "ERC20.transfer",
      "offset": [
        3729,
        3918
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "481": {
      "fn": "ERC20.transfer",
      "offset": [
        3729,
        3918
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x3FE"
    },
    "484": {
      "fn": "ERC20.transfer",
      "jump": "i",
      "offset": [
        3729,
        3918
      ],
      "op": "JUMP",
      "path": "3"
    },
    "485": {
      "fn": "ERC20.allowance",
      "offset": [
        3976,
        4125
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "486": {
      "fn": "ERC20.allowance",
      "offset": [
        3976,
        4125
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x13F"
    },
    "489": {
      "fn": "ERC20.allowance",
      "offset": [
        3976,
        4125
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x1F3"
    },
    "492": {
      "fn": "ERC20.allowance",
      "offset": [
        3976,
        4125
      ],
      "op": "CALLDATASIZE",
      "path": "3"
    },
    "493": {
      "fn": "ERC20.allowance",
      "offset": [
        3976,
        4125
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x4"
    },
    "495": {
      "fn": "ERC20.allowance",
      "offset": [
        3976,
        4125
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x7D4"
    },
    "498": {
      "fn": "ERC20.allowance",
      "jump": "i",
      "offset": [
        3976,
        4125
      ],
      "op": "JUMP",
      "path": "3"
    },
    "499": {
      "fn": "ERC20.allowance",
      "offset": [
        3976,
        4125
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "500": {
      "fn": "ERC20.allowance",
      "offset": [
        3976,
        4125
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x40C"
    },
    "503": {
      "fn": "ERC20.allowance",
      "jump": "i",
      "offset": [
        3976,
        4125
      ],
      "op": "JUMP",
      "path": "3"
    },
    "504": {
      "offset": [
        2806,
        2843
      ],
      "op": "JUMPDEST",
      "path": "66"
    },
    "505": {
      "fn": "ERC20.allowance",
      "offset": [
        2806,
        2843
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x102"
    },
    "508": {
      "fn": "ERC20.allowance",
      "offset": [
        2806,
        2843
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x40"
    },
    "510": {
      "fn": "ERC20.allowance",
      "offset": [
        2806,
        2843
      ],
      "op": "MLOAD",
      "path": "66"
    },
    "511": {
      "fn": "ERC20.allowance",
      "offset": [
        2806,
        2843
      ],
      "op": "DUP1",
      "path": "66"
    },
    "512": {
      "fn": "ERC20.allowance",
      "offset": [
        2806,
        2843
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x40"
    },
    "514": {
      "fn": "ERC20.allowance",
      "offset": [
        2806,
        2843
      ],
      "op": "ADD",
      "path": "66"
    },
    "515": {
      "fn": "ERC20.allowance",
      "offset": [
        2806,
        2843
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x40"
    },
    "517": {
      "fn": "ERC20.allowance",
      "offset": [
        2806,
        2843
      ],
      "op": "MSTORE",
      "path": "66"
    },
    "518": {
      "fn": "ERC20.allowance",
      "offset": [
        2806,
        2843
      ],
      "op": "DUP1",
      "path": "66"
    },
    "519": {
      "fn": "ERC20.allowance",
      "offset": [
        2806,
        2843
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x3"
    },
    "521": {
      "fn": "ERC20.allowance",
      "offset": [
        2806,
        2843
      ],
      "op": "DUP2",
      "path": "66"
    },
    "522": {
      "fn": "ERC20.allowance",
      "offset": [
        2806,
        2843
      ],
      "op": "MSTORE",
      "path": "66"
    },
    "523": {
      "fn": "ERC20.allowance",
      "offset": [
        2806,
        2843
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x20"
    },
    "525": {
      "fn": "ERC20.allowance",
      "offset": [
        2806,
        2843
      ],
      "op": "ADD",
      "path": "66"
    },
    "526": {
      "op": "PUSH3",
      "value": "0x44495"
    },
    "530": {
      "op": "PUSH1",
      "value": "0xEC"
    },
    "532": {
      "op": "SHL"
    },
    "533": {
      "offset": [
        2806,
        2843
      ],
      "op": "DUP2",
      "path": "66"
    },
    "534": {
      "fn": "ERC20.allowance",
      "offset": [
        2806,
        2843
      ],
      "op": "MSTORE",
      "path": "66"
    },
    "535": {
      "fn": "ERC20.allowance",
      "offset": [
        2806,
        2843
      ],
      "op": "POP",
      "path": "66"
    },
    "536": {
      "fn": "ERC20.allowance",
      "offset": [
        2806,
        2843
      ],
      "op": "DUP2",
      "path": "66"
    },
    "537": {
      "fn": "ERC20.allowance",
      "offset": [
        2806,
        2843
      ],
      "op": "JUMP",
      "path": "66"
    },
    "538": {
      "fn": "ERC20.name",
      "offset": [
        2156,
        2254
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "539": {
      "fn": "ERC20.name",
      "offset": [
        2210,
        2223
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x60"
    },
    "541": {
      "fn": "ERC20.name",
      "offset": [
        2242,
        2247
      ],
      "op": "PUSH1",
      "path": "3",
      "statement": 1,
      "value": "0x3"
    },
    "543": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP1",
      "path": "3"
    },
    "544": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SLOAD",
      "path": "3"
    },
    "545": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x229"
    },
    "548": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "549": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0xA0B"
    },
    "552": {
      "fn": "ERC20.name",
      "jump": "i",
      "offset": [
        2235,
        2247
      ],
      "op": "JUMP",
      "path": "3"
    },
    "553": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "554": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP1",
      "path": "3"
    },
    "555": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x1F"
    },
    "557": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "ADD",
      "path": "3"
    },
    "558": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x20"
    },
    "560": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP1",
      "path": "3"
    },
    "561": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SWAP2",
      "path": "3"
    },
    "562": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DIV",
      "path": "3"
    },
    "563": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "MUL",
      "path": "3"
    },
    "564": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x20"
    },
    "566": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "ADD",
      "path": "3"
    },
    "567": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "569": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "MLOAD",
      "path": "3"
    },
    "570": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "571": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP2",
      "path": "3"
    },
    "572": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "ADD",
      "path": "3"
    },
    "573": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "575": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "576": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP1",
      "path": "3"
    },
    "577": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SWAP3",
      "path": "3"
    },
    "578": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SWAP2",
      "path": "3"
    },
    "579": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "580": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP2",
      "path": "3"
    },
    "581": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP2",
      "path": "3"
    },
    "582": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "583": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x20"
    },
    "585": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "ADD",
      "path": "3"
    },
    "586": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP3",
      "path": "3"
    },
    "587": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP1",
      "path": "3"
    },
    "588": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SLOAD",
      "path": "3"
    },
    "589": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x255"
    },
    "592": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "593": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0xA0B"
    },
    "596": {
      "fn": "ERC20.name",
      "jump": "i",
      "offset": [
        2235,
        2247
      ],
      "op": "JUMP",
      "path": "3"
    },
    "597": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "598": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP1",
      "path": "3"
    },
    "599": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "ISZERO",
      "path": "3"
    },
    "600": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x2A2"
    },
    "603": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "JUMPI",
      "path": "3"
    },
    "604": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP1",
      "path": "3"
    },
    "605": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x1F"
    },
    "607": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "LT",
      "path": "3"
    },
    "608": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x277"
    },
    "611": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "JUMPI",
      "path": "3"
    },
    "612": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x100"
    },
    "615": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP1",
      "path": "3"
    },
    "616": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP4",
      "path": "3"
    },
    "617": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SLOAD",
      "path": "3"
    },
    "618": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DIV",
      "path": "3"
    },
    "619": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "MUL",
      "path": "3"
    },
    "620": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP4",
      "path": "3"
    },
    "621": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "622": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SWAP2",
      "path": "3"
    },
    "623": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x20"
    },
    "625": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "ADD",
      "path": "3"
    },
    "626": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SWAP2",
      "path": "3"
    },
    "627": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x2A2"
    },
    "630": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "JUMP",
      "path": "3"
    },
    "631": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "632": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP3",
      "path": "3"
    },
    "633": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "ADD",
      "path": "3"
    },
    "634": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SWAP2",
      "path": "3"
    },
    "635": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "636": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x0"
    },
    "638": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "639": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x20"
    },
    "641": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x0"
    },
    "643": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "KECCAK256",
      "path": "3"
    },
    "644": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "645": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "646": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP2",
      "path": "3"
    },
    "647": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SLOAD",
      "path": "3"
    },
    "648": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP2",
      "path": "3"
    },
    "649": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "650": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "651": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x1"
    },
    "653": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "ADD",
      "path": "3"
    },
    "654": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "655": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x20"
    },
    "657": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "ADD",
      "path": "3"
    },
    "658": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP1",
      "path": "3"
    },
    "659": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP4",
      "path": "3"
    },
    "660": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "GT",
      "path": "3"
    },
    "661": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x285"
    },
    "664": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "JUMPI",
      "path": "3"
    },
    "665": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP3",
      "path": "3"
    },
    "666": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "667": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SUB",
      "path": "3"
    },
    "668": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x1F"
    },
    "670": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "AND",
      "path": "3"
    },
    "671": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP3",
      "path": "3"
    },
    "672": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "ADD",
      "path": "3"
    },
    "673": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SWAP2",
      "path": "3"
    },
    "674": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "675": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "POP",
      "path": "3"
    },
    "676": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "POP",
      "path": "3"
    },
    "677": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "POP",
      "path": "3"
    },
    "678": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "POP",
      "path": "3"
    },
    "679": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "POP",
      "path": "3"
    },
    "680": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "681": {
      "fn": "ERC20.name",
      "offset": [
        2235,
        2247
      ],
      "op": "POP",
      "path": "3"
    },
    "682": {
      "fn": "ERC20.name",
      "offset": [
        2156,
        2254
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "683": {
      "fn": "ERC20.name",
      "jump": "o",
      "offset": [
        2156,
        2254
      ],
      "op": "JUMP",
      "path": "3"
    },
    "684": {
      "fn": "ERC20.approve",
      "offset": [
        4433,
        4630
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "685": {
      "fn": "ERC20.approve",
      "offset": [
        4516,
        4520
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x0"
    },
    "687": {
      "fn": "Context._msgSender",
      "offset": [
        719,
        729
      ],
      "op": "CALLER",
      "path": "11",
      "statement": 2
    },
    "688": {
      "fn": "ERC20.approve",
      "offset": [
        4570,
        4602
      ],
      "op": "PUSH2",
      "path": "3",
      "statement": 3,
      "value": "0x2BA"
    },
    "691": {
      "fn": "Context._msgSender",
      "offset": [
        719,
        729
      ],
      "op": "DUP2",
      "path": "11"
    },
    "692": {
      "fn": "ERC20.approve",
      "offset": [
        4586,
        4593
      ],
      "op": "DUP6",
      "path": "3"
    },
    "693": {
      "fn": "ERC20.approve",
      "offset": [
        4595,
        4601
      ],
      "op": "DUP6",
      "path": "3"
    },
    "694": {
      "fn": "ERC20.approve",
      "offset": [
        4570,
        4578
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x437"
    },
    "697": {
      "fn": "ERC20.approve",
      "jump": "i",
      "offset": [
        4570,
        4602
      ],
      "op": "JUMP",
      "path": "3"
    },
    "698": {
      "fn": "ERC20.approve",
      "offset": [
        4570,
        4602
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "699": {
      "op": "POP"
    },
    "700": {
      "fn": "ERC20.approve",
      "offset": [
        4619,
        4623
      ],
      "op": "PUSH1",
      "path": "3",
      "statement": 4,
      "value": "0x1"
    },
    "702": {
      "fn": "ERC20.approve",
      "offset": [
        4619,
        4623
      ],
      "op": "SWAP4",
      "path": "3"
    },
    "703": {
      "fn": "ERC20.approve",
      "offset": [
        4433,
        4630
      ],
      "op": "SWAP3",
      "path": "3"
    },
    "704": {
      "op": "POP"
    },
    "705": {
      "op": "POP"
    },
    "706": {
      "op": "POP"
    },
    "707": {
      "fn": "ERC20.approve",
      "jump": "o",
      "offset": [
        4433,
        4630
      ],
      "op": "JUMP",
      "path": "3"
    },
    "708": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5192,
        5478
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "709": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5319,
        5323
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x0"
    },
    "711": {
      "fn": "Context._msgSender",
      "offset": [
        719,
        729
      ],
      "op": "CALLER",
      "path": "11"
    },
    "712": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5375,
        5413
      ],
      "op": "PUSH2",
      "path": "3",
      "statement": 5,
      "value": "0x2D2"
    },
    "715": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5391,
        5395
      ],
      "op": "DUP6",
      "path": "3"
    },
    "716": {
      "fn": "Context._msgSender",
      "offset": [
        719,
        729
      ],
      "op": "DUP3",
      "path": "11"
    },
    "717": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5406,
        5412
      ],
      "op": "DUP6",
      "path": "3"
    },
    "718": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5375,
        5390
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x55B"
    },
    "721": {
      "fn": "ERC20.transferFrom",
      "jump": "i",
      "offset": [
        5375,
        5413
      ],
      "op": "JUMP",
      "path": "3"
    },
    "722": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5375,
        5413
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "723": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5423,
        5450
      ],
      "op": "PUSH2",
      "path": "3",
      "statement": 6,
      "value": "0x2DD"
    },
    "726": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5433,
        5437
      ],
      "op": "DUP6",
      "path": "3"
    },
    "727": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5439,
        5441
      ],
      "op": "DUP6",
      "path": "3"
    },
    "728": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5443,
        5449
      ],
      "op": "DUP6",
      "path": "3"
    },
    "729": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5423,
        5432
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x5D5"
    },
    "732": {
      "fn": "ERC20.transferFrom",
      "jump": "i",
      "offset": [
        5423,
        5450
      ],
      "op": "JUMP",
      "path": "3"
    },
    "733": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5423,
        5450
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "734": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5467,
        5471
      ],
      "op": "PUSH1",
      "path": "3",
      "statement": 7,
      "value": "0x1"
    },
    "736": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5460,
        5471
      ],
      "op": "SWAP2",
      "path": "3"
    },
    "737": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5460,
        5471
      ],
      "op": "POP",
      "path": "3"
    },
    "738": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5460,
        5471
      ],
      "op": "POP",
      "path": "3"
    },
    "739": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5192,
        5478
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "740": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5192,
        5478
      ],
      "op": "SWAP4",
      "path": "3"
    },
    "741": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5192,
        5478
      ],
      "op": "SWAP3",
      "path": "3"
    },
    "742": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5192,
        5478
      ],
      "op": "POP",
      "path": "3"
    },
    "743": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5192,
        5478
      ],
      "op": "POP",
      "path": "3"
    },
    "744": {
      "fn": "ERC20.transferFrom",
      "offset": [
        5192,
        5478
      ],
      "op": "POP",
      "path": "3"
    },
    "745": {
      "fn": "ERC20.transferFrom",
      "jump": "o",
      "offset": [
        5192,
        5478
      ],
      "op": "JUMP",
      "path": "3"
    },
    "746": {
      "offset": [
        2890,
        2951
      ],
      "op": "JUMPDEST",
      "path": "66"
    },
    "747": {
      "offset": [
        2939,
        2951
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x2F6"
    },
    "750": {
      "offset": [
        2882,
        2884
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x12"
    },
    "752": {
      "offset": [
        2939,
        2941
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0xA"
    },
    "754": {
      "offset": [
        2939,
        2951
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x91B"
    },
    "757": {
      "fn": "ERC20.transferFrom",
      "jump": "i",
      "offset": [
        2939,
        2951
      ],
      "op": "JUMP",
      "path": "66"
    },
    "758": {
      "fn": "ERC20.transferFrom",
      "offset": [
        2939,
        2951
      ],
      "op": "JUMPDEST",
      "path": "66"
    },
    "759": {
      "offset": [
        2931,
        2951
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x304"
    },
    "762": {
      "fn": "ERC20.transferFrom",
      "offset": [
        2931,
        2951
      ],
      "op": "SWAP1",
      "path": "66"
    },
    "763": {
      "offset": [
        2931,
        2936
      ],
      "op": "PUSH4",
      "path": "66",
      "value": "0x3B9ACA00"
    },
    "768": {
      "offset": [
        2931,
        2951
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0x9EC"
    },
    "771": {
      "fn": "ERC20.transferFrom",
      "jump": "i",
      "offset": [
        2931,
        2951
      ],
      "op": "JUMP",
      "path": "66"
    },
    "772": {
      "fn": "ERC20.transferFrom",
      "offset": [
        2931,
        2951
      ],
      "op": "JUMPDEST",
      "path": "66"
    },
    "773": {
      "offset": [
        2890,
        2951
      ],
      "op": "DUP2",
      "path": "66"
    },
    "774": {
      "fn": "ERC20.transferFrom",
      "jump": "o",
      "offset": [
        2890,
        2951
      ],
      "op": "JUMP",
      "path": "66"
    },
    "775": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        5873,
        6107
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "776": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        5961,
        5965
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x0"
    },
    "778": {
      "fn": "Context._msgSender",
      "offset": [
        719,
        729
      ],
      "op": "CALLER",
      "path": "11"
    },
    "779": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        6015,
        6079
      ],
      "op": "PUSH2",
      "path": "3",
      "statement": 8,
      "value": "0x2BA"
    },
    "782": {
      "fn": "Context._msgSender",
      "offset": [
        719,
        729
      ],
      "op": "DUP2",
      "path": "11"
    },
    "783": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        6031,
        6038
      ],
      "op": "DUP6",
      "path": "3"
    },
    "784": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        6068,
        6078
      ],
      "op": "DUP6",
      "path": "3"
    },
    "785": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        6040,
        6065
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x31A"
    },
    "788": {
      "fn": "Context._msgSender",
      "offset": [
        719,
        729
      ],
      "op": "DUP4",
      "path": "11"
    },
    "789": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        6031,
        6038
      ],
      "op": "DUP4",
      "path": "3"
    },
    "790": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        6040,
        6049
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x40C"
    },
    "793": {
      "fn": "ERC20.increaseAllowance",
      "jump": "i",
      "offset": [
        6040,
        6065
      ],
      "op": "JUMP",
      "path": "3"
    },
    "794": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        6040,
        6065
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "795": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        6040,
        6078
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x324"
    },
    "798": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        6040,
        6078
      ],
      "op": "SWAP2",
      "path": "3"
    },
    "799": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        6040,
        6078
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "800": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        6040,
        6078
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x8BD"
    },
    "803": {
      "fn": "ERC20.increaseAllowance",
      "jump": "i",
      "offset": [
        6040,
        6078
      ],
      "op": "JUMP",
      "path": "3"
    },
    "804": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        6040,
        6078
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "805": {
      "fn": "ERC20.increaseAllowance",
      "offset": [
        6015,
        6023
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x437"
    },
    "808": {
      "fn": "ERC20.increaseAllowance",
      "jump": "i",
      "offset": [
        6015,
        6079
      ],
      "op": "JUMP",
      "path": "3"
    },
    "809": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3408,
        3533
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "810": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "812": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "814": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "816": {
      "op": "SHL"
    },
    "817": {
      "op": "SUB"
    },
    "818": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3508,
        3526
      ],
      "op": "DUP2",
      "path": "3",
      "statement": 9
    },
    "819": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3508,
        3526
      ],
      "op": "AND",
      "path": "3"
    },
    "820": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3482,
        3489
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x0"
    },
    "822": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3508,
        3526
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "823": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3508,
        3526
      ],
      "op": "DUP2",
      "path": "3"
    },
    "824": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3508,
        3526
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "825": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3508,
        3526
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x20"
    },
    "827": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3508,
        3526
      ],
      "op": "DUP2",
      "path": "3"
    },
    "828": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3508,
        3526
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "829": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3508,
        3526
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "830": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3508,
        3526
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "832": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3508,
        3526
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "833": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3508,
        3526
      ],
      "op": "KECCAK256",
      "path": "3"
    },
    "834": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3508,
        3526
      ],
      "op": "SLOAD",
      "path": "3"
    },
    "835": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3408,
        3533
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "836": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3408,
        3533
      ],
      "op": "SWAP2",
      "path": "3"
    },
    "837": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3408,
        3533
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "838": {
      "fn": "ERC20.balanceOf",
      "offset": [
        3408,
        3533
      ],
      "op": "POP",
      "path": "3"
    },
    "839": {
      "fn": "ERC20.balanceOf",
      "jump": "o",
      "offset": [
        3408,
        3533
      ],
      "op": "JUMP",
      "path": "3"
    },
    "840": {
      "fn": "ERC20.symbol",
      "offset": [
        2367,
        2469
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "841": {
      "fn": "ERC20.symbol",
      "offset": [
        2423,
        2436
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x60"
    },
    "843": {
      "fn": "ERC20.symbol",
      "offset": [
        2455,
        2462
      ],
      "op": "PUSH1",
      "path": "3",
      "statement": 10,
      "value": "0x4"
    },
    "845": {
      "fn": "ERC20.symbol",
      "offset": [
        2448,
        2462
      ],
      "op": "DUP1",
      "path": "3"
    },
    "846": {
      "fn": "ERC20.symbol",
      "offset": [
        2448,
        2462
      ],
      "op": "SLOAD",
      "path": "3"
    },
    "847": {
      "fn": "ERC20.symbol",
      "offset": [
        2448,
        2462
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x229"
    },
    "850": {
      "fn": "ERC20.symbol",
      "offset": [
        2448,
        2462
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "851": {
      "fn": "ERC20.symbol",
      "offset": [
        2448,
        2462
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0xA0B"
    },
    "854": {
      "fn": "ERC20.symbol",
      "jump": "i",
      "offset": [
        2448,
        2462
      ],
      "op": "JUMP",
      "path": "3"
    },
    "855": {
      "offset": [
        2728,
        2800
      ],
      "op": "JUMPDEST",
      "path": "66"
    },
    "856": {
      "fn": "ERC20.symbol",
      "offset": [
        2728,
        2800
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x40"
    },
    "858": {
      "fn": "ERC20.symbol",
      "offset": [
        2728,
        2800
      ],
      "op": "MLOAD",
      "path": "66"
    },
    "859": {
      "fn": "ERC20.symbol",
      "offset": [
        2728,
        2800
      ],
      "op": "DUP1",
      "path": "66"
    },
    "860": {
      "fn": "ERC20.symbol",
      "offset": [
        2728,
        2800
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x60"
    },
    "862": {
      "fn": "ERC20.symbol",
      "offset": [
        2728,
        2800
      ],
      "op": "ADD",
      "path": "66"
    },
    "863": {
      "fn": "ERC20.symbol",
      "offset": [
        2728,
        2800
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x40"
    },
    "865": {
      "fn": "ERC20.symbol",
      "offset": [
        2728,
        2800
      ],
      "op": "MSTORE",
      "path": "66"
    },
    "866": {
      "fn": "ERC20.symbol",
      "offset": [
        2728,
        2800
      ],
      "op": "DUP1",
      "path": "66"
    },
    "867": {
      "fn": "ERC20.symbol",
      "offset": [
        2728,
        2800
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x28"
    },
    "869": {
      "fn": "ERC20.symbol",
      "offset": [
        2728,
        2800
      ],
      "op": "DUP2",
      "path": "66"
    },
    "870": {
      "fn": "ERC20.symbol",
      "offset": [
        2728,
        2800
      ],
      "op": "MSTORE",
      "path": "66"
    },
    "871": {
      "fn": "ERC20.symbol",
      "offset": [
        2728,
        2800
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x20"
    },
    "873": {
      "fn": "ERC20.symbol",
      "offset": [
        2728,
        2800
      ],
      "op": "ADD",
      "path": "66"
    },
    "874": {
      "fn": "ERC20.symbol",
      "offset": [
        2728,
        2800
      ],
      "op": "PUSH2",
      "path": "66",
      "value": "0xA5D"
    },
    "877": {
      "fn": "ERC20.symbol",
      "offset": [
        2728,
        2800
      ],
      "op": "PUSH1",
      "path": "66",
      "value": "0x28"
    },
    "879": {
      "fn": "ERC20.symbol",
      "offset": [
        2728,
        2800
      ],
      "op": "SWAP2",
      "path": "66"
    },
    "880": {
      "fn": "ERC20.symbol",
      "offset": [
        2728,
        2800
      ],
      "op": "CODECOPY",
      "path": "66"
    },
    "881": {
      "fn": "ERC20.symbol",
      "offset": [
        2728,
        2800
      ],
      "op": "DUP2",
      "path": "66"
    },
    "882": {
      "fn": "ERC20.symbol",
      "jump": "o",
      "offset": [
        2728,
        2800
      ],
      "op": "JUMP",
      "path": "66"
    },
    "883": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6594,
        7021
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "884": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6687,
        6691
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x0"
    },
    "886": {
      "fn": "Context._msgSender",
      "offset": [
        719,
        729
      ],
      "op": "CALLER",
      "path": "11"
    },
    "887": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6687,
        6691
      ],
      "op": "DUP2",
      "path": "3"
    },
    "888": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6768,
        6793
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x381"
    },
    "891": {
      "fn": "Context._msgSender",
      "offset": [
        719,
        729
      ],
      "op": "DUP3",
      "path": "11"
    },
    "892": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6785,
        6792
      ],
      "op": "DUP7",
      "path": "3"
    },
    "893": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6768,
        6777
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x40C"
    },
    "896": {
      "fn": "ERC20.decreaseAllowance",
      "jump": "i",
      "offset": [
        6768,
        6793
      ],
      "op": "JUMP",
      "path": "3"
    },
    "897": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6768,
        6793
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "898": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6741,
        6793
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "899": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6741,
        6793
      ],
      "op": "POP",
      "path": "3"
    },
    "900": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6831,
        6846
      ],
      "op": "DUP4",
      "path": "3",
      "statement": 11
    },
    "901": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6811,
        6827
      ],
      "op": "DUP2",
      "path": "3"
    },
    "902": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6811,
        6846
      ],
      "op": "LT",
      "path": "3"
    },
    "903": {
      "branch": 29,
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6811,
        6846
      ],
      "op": "ISZERO",
      "path": "3"
    },
    "904": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6803,
        6888
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x3E6"
    },
    "907": {
      "branch": 29,
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6803,
        6888
      ],
      "op": "JUMPI",
      "path": "3"
    },
    "908": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6803,
        6888
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "910": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6803,
        6888
      ],
      "op": "MLOAD",
      "path": "3"
    },
    "911": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "915": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "917": {
      "op": "SHL"
    },
    "918": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6803,
        6888
      ],
      "op": "DUP2",
      "path": "3"
    },
    "919": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6803,
        6888
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "920": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "922": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6803,
        6888
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x4"
    },
    "924": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6803,
        6888
      ],
      "op": "DUP3",
      "path": "3"
    },
    "925": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6803,
        6888
      ],
      "op": "ADD",
      "path": "3"
    },
    "926": {
      "op": "MSTORE"
    },
    "927": {
      "op": "PUSH1",
      "value": "0x25"
    },
    "929": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "931": {
      "op": "DUP3"
    },
    "932": {
      "op": "ADD"
    },
    "933": {
      "op": "MSTORE"
    },
    "934": {
      "op": "PUSH32",
      "value": "0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77"
    },
    "967": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "969": {
      "op": "DUP3"
    },
    "970": {
      "op": "ADD"
    },
    "971": {
      "op": "MSTORE"
    },
    "972": {
      "op": "PUSH5",
      "value": "0x207A65726F"
    },
    "978": {
      "op": "PUSH1",
      "value": "0xD8"
    },
    "980": {
      "op": "SHL"
    },
    "981": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "983": {
      "op": "DUP3"
    },
    "984": {
      "op": "ADD"
    },
    "985": {
      "op": "MSTORE"
    },
    "986": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "988": {
      "op": "ADD"
    },
    "989": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6803,
        6888
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "990": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6803,
        6888
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "992": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6803,
        6888
      ],
      "op": "MLOAD",
      "path": "3"
    },
    "993": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6803,
        6888
      ],
      "op": "DUP1",
      "path": "3"
    },
    "994": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6803,
        6888
      ],
      "op": "SWAP2",
      "path": "3"
    },
    "995": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6803,
        6888
      ],
      "op": "SUB",
      "path": "3"
    },
    "996": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6803,
        6888
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "997": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6803,
        6888
      ],
      "op": "REVERT",
      "optimizer_revert": true,
      "path": "3"
    },
    "998": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6803,
        6888
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "999": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6922,
        6982
      ],
      "op": "PUSH2",
      "path": "3",
      "statement": 12,
      "value": "0x3F3"
    },
    "1002": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6931,
        6936
      ],
      "op": "DUP3",
      "path": "3"
    },
    "1003": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6938,
        6945
      ],
      "op": "DUP7",
      "path": "3"
    },
    "1004": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6966,
        6981
      ],
      "op": "DUP7",
      "path": "3"
    },
    "1005": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6947,
        6963
      ],
      "op": "DUP5",
      "path": "3"
    },
    "1006": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6947,
        6981
      ],
      "op": "SUB",
      "path": "3"
    },
    "1007": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6922,
        6930
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x437"
    },
    "1010": {
      "fn": "ERC20.decreaseAllowance",
      "jump": "i",
      "offset": [
        6922,
        6982
      ],
      "op": "JUMP",
      "path": "3"
    },
    "1011": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6922,
        6982
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "1012": {
      "op": "POP"
    },
    "1013": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        7010,
        7014
      ],
      "op": "PUSH1",
      "path": "3",
      "statement": 13,
      "value": "0x1"
    },
    "1015": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        7010,
        7014
      ],
      "op": "SWAP5",
      "path": "3"
    },
    "1016": {
      "fn": "ERC20.decreaseAllowance",
      "offset": [
        6594,
        7021
      ],
      "op": "SWAP4",
      "path": "3"
    },
    "1017": {
      "op": "POP"
    },
    "1018": {
      "op": "POP"
    },
    "1019": {
      "op": "POP"
    },
    "1020": {
      "op": "POP"
    },
    "1021": {
      "fn": "ERC20.decreaseAllowance",
      "jump": "o",
      "offset": [
        6594,
        7021
      ],
      "op": "JUMP",
      "path": "3"
    },
    "1022": {
      "fn": "ERC20.transfer",
      "offset": [
        3729,
        3918
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "1023": {
      "fn": "ERC20.transfer",
      "offset": [
        3808,
        3812
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x0"
    },
    "1025": {
      "fn": "Context._msgSender",
      "offset": [
        719,
        729
      ],
      "op": "CALLER",
      "path": "11"
    },
    "1026": {
      "fn": "ERC20.transfer",
      "offset": [
        3862,
        3890
      ],
      "op": "PUSH2",
      "path": "3",
      "statement": 14,
      "value": "0x2BA"
    },
    "1029": {
      "fn": "Context._msgSender",
      "offset": [
        719,
        729
      ],
      "op": "DUP2",
      "path": "11"
    },
    "1030": {
      "fn": "ERC20.transfer",
      "offset": [
        3879,
        3881
      ],
      "op": "DUP6",
      "path": "3"
    },
    "1031": {
      "fn": "ERC20.transfer",
      "offset": [
        3883,
        3889
      ],
      "op": "DUP6",
      "path": "3"
    },
    "1032": {
      "fn": "ERC20.transfer",
      "offset": [
        3862,
        3871
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x5D5"
    },
    "1035": {
      "fn": "ERC20.transfer",
      "jump": "i",
      "offset": [
        3862,
        3890
      ],
      "op": "JUMP",
      "path": "3"
    },
    "1036": {
      "fn": "ERC20.allowance",
      "offset": [
        3976,
        4125
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "1037": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1039": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1041": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1043": {
      "op": "SHL"
    },
    "1044": {
      "op": "SUB"
    },
    "1045": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4109
      ],
      "op": "SWAP2",
      "path": "3",
      "statement": 15
    },
    "1046": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4109
      ],
      "op": "DUP3",
      "path": "3"
    },
    "1047": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4109
      ],
      "op": "AND",
      "path": "3"
    },
    "1048": {
      "fn": "ERC20.allowance",
      "offset": [
        4065,
        4072
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x0"
    },
    "1050": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4109
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1051": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4109
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1052": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4109
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "1053": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4102
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x1"
    },
    "1055": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4109
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x20"
    },
    "1057": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4109
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1058": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4109
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1059": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4109
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "1060": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4109
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "1062": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4109
      ],
      "op": "DUP1",
      "path": "3"
    },
    "1063": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4109
      ],
      "op": "DUP4",
      "path": "3"
    },
    "1064": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4109
      ],
      "op": "KECCAK256",
      "path": "3"
    },
    "1065": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4118
      ],
      "op": "SWAP4",
      "path": "3"
    },
    "1066": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4118
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1067": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4118
      ],
      "op": "SWAP5",
      "path": "3"
    },
    "1068": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4118
      ],
      "op": "AND",
      "path": "3"
    },
    "1069": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4118
      ],
      "op": "DUP3",
      "path": "3"
    },
    "1070": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4118
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "1071": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4118
      ],
      "op": "SWAP2",
      "path": "3"
    },
    "1072": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4118
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1073": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4118
      ],
      "op": "SWAP2",
      "path": "3"
    },
    "1074": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4118
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "1075": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4118
      ],
      "op": "KECCAK256",
      "path": "3"
    },
    "1076": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4118
      ],
      "op": "SLOAD",
      "path": "3"
    },
    "1077": {
      "fn": "ERC20.allowance",
      "offset": [
        4091,
        4118
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1078": {
      "fn": "ERC20.allowance",
      "jump": "o",
      "offset": [
        3976,
        4125
      ],
      "op": "JUMP",
      "path": "3"
    },
    "1079": {
      "fn": "ERC20._approve",
      "offset": [
        10110,
        10480
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "1080": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1082": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1084": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1086": {
      "op": "SHL"
    },
    "1087": {
      "op": "SUB"
    },
    "1088": {
      "fn": "ERC20._approve",
      "offset": [
        10241,
        10260
      ],
      "op": "DUP4",
      "path": "3",
      "statement": 16
    },
    "1089": {
      "branch": 30,
      "fn": "ERC20._approve",
      "offset": [
        10241,
        10260
      ],
      "op": "AND",
      "path": "3"
    },
    "1090": {
      "fn": "ERC20._approve",
      "offset": [
        10233,
        10301
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x499"
    },
    "1093": {
      "branch": 30,
      "fn": "ERC20._approve",
      "offset": [
        10233,
        10301
      ],
      "op": "JUMPI",
      "path": "3"
    },
    "1094": {
      "fn": "ERC20._approve",
      "offset": [
        10233,
        10301
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "1096": {
      "fn": "ERC20._approve",
      "offset": [
        10233,
        10301
      ],
      "op": "MLOAD",
      "path": "3"
    },
    "1097": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1101": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1103": {
      "op": "SHL"
    },
    "1104": {
      "fn": "ERC20._approve",
      "offset": [
        10233,
        10301
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1105": {
      "fn": "ERC20._approve",
      "offset": [
        10233,
        10301
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "1106": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1108": {
      "fn": "ERC20._approve",
      "offset": [
        10233,
        10301
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x4"
    },
    "1110": {
      "fn": "ERC20._approve",
      "offset": [
        10233,
        10301
      ],
      "op": "DUP3",
      "path": "3"
    },
    "1111": {
      "fn": "ERC20._approve",
      "offset": [
        10233,
        10301
      ],
      "op": "ADD",
      "path": "3"
    },
    "1112": {
      "op": "MSTORE"
    },
    "1113": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1115": {
      "op": "DUP1"
    },
    "1116": {
      "op": "DUP3"
    },
    "1117": {
      "op": "ADD"
    },
    "1118": {
      "op": "MSTORE"
    },
    "1119": {
      "op": "PUSH32",
      "value": "0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464"
    },
    "1152": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1154": {
      "op": "DUP3"
    },
    "1155": {
      "op": "ADD"
    },
    "1156": {
      "op": "MSTORE"
    },
    "1157": {
      "op": "PUSH4",
      "value": "0x72657373"
    },
    "1162": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "1164": {
      "op": "SHL"
    },
    "1165": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1167": {
      "op": "DUP3"
    },
    "1168": {
      "op": "ADD"
    },
    "1169": {
      "op": "MSTORE"
    },
    "1170": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "1172": {
      "op": "ADD"
    },
    "1173": {
      "fn": "ERC20._approve",
      "offset": [
        10233,
        10301
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x3DD"
    },
    "1176": {
      "op": "JUMP"
    },
    "1177": {
      "fn": "ERC20._approve",
      "offset": [
        10233,
        10301
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "1178": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1180": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1182": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1184": {
      "op": "SHL"
    },
    "1185": {
      "op": "SUB"
    },
    "1186": {
      "fn": "ERC20._approve",
      "offset": [
        10319,
        10340
      ],
      "op": "DUP3",
      "path": "3",
      "statement": 17
    },
    "1187": {
      "branch": 31,
      "fn": "ERC20._approve",
      "offset": [
        10319,
        10340
      ],
      "op": "AND",
      "path": "3"
    },
    "1188": {
      "fn": "ERC20._approve",
      "offset": [
        10311,
        10379
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x4FA"
    },
    "1191": {
      "branch": 31,
      "fn": "ERC20._approve",
      "offset": [
        10311,
        10379
      ],
      "op": "JUMPI",
      "path": "3"
    },
    "1192": {
      "fn": "ERC20._approve",
      "offset": [
        10311,
        10379
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "1194": {
      "fn": "ERC20._approve",
      "offset": [
        10311,
        10379
      ],
      "op": "MLOAD",
      "path": "3"
    },
    "1195": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1199": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1201": {
      "op": "SHL"
    },
    "1202": {
      "fn": "ERC20._approve",
      "offset": [
        10311,
        10379
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1203": {
      "fn": "ERC20._approve",
      "offset": [
        10311,
        10379
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "1204": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1206": {
      "fn": "ERC20._approve",
      "offset": [
        10311,
        10379
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x4"
    },
    "1208": {
      "fn": "ERC20._approve",
      "offset": [
        10311,
        10379
      ],
      "op": "DUP3",
      "path": "3"
    },
    "1209": {
      "fn": "ERC20._approve",
      "offset": [
        10311,
        10379
      ],
      "op": "ADD",
      "path": "3"
    },
    "1210": {
      "op": "MSTORE"
    },
    "1211": {
      "op": "PUSH1",
      "value": "0x22"
    },
    "1213": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1215": {
      "op": "DUP3"
    },
    "1216": {
      "op": "ADD"
    },
    "1217": {
      "op": "MSTORE"
    },
    "1218": {
      "op": "PUSH32",
      "value": "0x45524332303A20617070726F766520746F20746865207A65726F206164647265"
    },
    "1251": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1253": {
      "op": "DUP3"
    },
    "1254": {
      "op": "ADD"
    },
    "1255": {
      "op": "MSTORE"
    },
    "1256": {
      "op": "PUSH2",
      "value": "0x7373"
    },
    "1259": {
      "op": "PUSH1",
      "value": "0xF0"
    },
    "1261": {
      "op": "SHL"
    },
    "1262": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1264": {
      "op": "DUP3"
    },
    "1265": {
      "op": "ADD"
    },
    "1266": {
      "op": "MSTORE"
    },
    "1267": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "1269": {
      "op": "ADD"
    },
    "1270": {
      "fn": "ERC20._approve",
      "offset": [
        10311,
        10379
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x3DD"
    },
    "1273": {
      "op": "JUMP"
    },
    "1274": {
      "fn": "ERC20._approve",
      "offset": [
        10311,
        10379
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "1275": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1277": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1279": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1281": {
      "op": "SHL"
    },
    "1282": {
      "op": "SUB"
    },
    "1283": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10408
      ],
      "op": "DUP4",
      "path": "3",
      "statement": 18
    },
    "1284": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10408
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1285": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10408
      ],
      "op": "AND",
      "path": "3"
    },
    "1286": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10408
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x0"
    },
    "1288": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10408
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1289": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10408
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1290": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10408
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "1291": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10401
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x1"
    },
    "1293": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10408
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x20"
    },
    "1295": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10408
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1296": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10408
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1297": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10408
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "1298": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10408
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "1300": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10408
      ],
      "op": "DUP1",
      "path": "3"
    },
    "1301": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10408
      ],
      "op": "DUP4",
      "path": "3"
    },
    "1302": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10408
      ],
      "op": "KECCAK256",
      "path": "3"
    },
    "1303": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10417
      ],
      "op": "SWAP5",
      "path": "3"
    },
    "1304": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10417
      ],
      "op": "DUP8",
      "path": "3"
    },
    "1305": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10417
      ],
      "op": "AND",
      "path": "3"
    },
    "1306": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10417
      ],
      "op": "DUP1",
      "path": "3"
    },
    "1307": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10417
      ],
      "op": "DUP5",
      "path": "3"
    },
    "1308": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10417
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "1309": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10417
      ],
      "op": "SWAP5",
      "path": "3"
    },
    "1310": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10417
      ],
      "op": "DUP3",
      "path": "3"
    },
    "1311": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10417
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "1312": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10417
      ],
      "op": "SWAP2",
      "path": "3"
    },
    "1313": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10417
      ],
      "op": "DUP3",
      "path": "3"
    },
    "1314": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10417
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1315": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10417
      ],
      "op": "KECCAK256",
      "path": "3"
    },
    "1316": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10426
      ],
      "op": "DUP6",
      "path": "3"
    },
    "1317": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10426
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1318": {
      "fn": "ERC20._approve",
      "offset": [
        10390,
        10426
      ],
      "op": "SSTORE",
      "path": "3"
    },
    "1319": {
      "fn": "ERC20._approve",
      "offset": [
        10441,
        10473
      ],
      "op": "SWAP1",
      "path": "3",
      "statement": 19
    },
    "1320": {
      "fn": "ERC20._approve",
      "offset": [
        10441,
        10473
      ],
      "op": "MLOAD",
      "path": "3"
    },
    "1321": {
      "op": "DUP5"
    },
    "1322": {
      "op": "DUP2"
    },
    "1323": {
      "op": "MSTORE"
    },
    "1324": {
      "fn": "ERC20._approve",
      "offset": [
        10441,
        10473
      ],
      "op": "PUSH32",
      "path": "3",
      "value": "0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925"
    },
    "1357": {
      "fn": "ERC20._approve",
      "offset": [
        10441,
        10473
      ],
      "op": "SWAP2",
      "path": "3"
    },
    "1358": {
      "op": "ADD"
    },
    "1359": {
      "fn": "ERC20._approve",
      "offset": [
        10441,
        10473
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "1361": {
      "fn": "ERC20._approve",
      "offset": [
        10441,
        10473
      ],
      "op": "MLOAD",
      "path": "3"
    },
    "1362": {
      "fn": "ERC20._approve",
      "offset": [
        10441,
        10473
      ],
      "op": "DUP1",
      "path": "3"
    },
    "1363": {
      "fn": "ERC20._approve",
      "offset": [
        10441,
        10473
      ],
      "op": "SWAP2",
      "path": "3"
    },
    "1364": {
      "fn": "ERC20._approve",
      "offset": [
        10441,
        10473
      ],
      "op": "SUB",
      "path": "3"
    },
    "1365": {
      "fn": "ERC20._approve",
      "offset": [
        10441,
        10473
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1366": {
      "fn": "ERC20._approve",
      "offset": [
        10441,
        10473
      ],
      "op": "LOG3",
      "path": "3"
    },
    "1367": {
      "fn": "ERC20._approve",
      "offset": [
        10110,
        10480
      ],
      "op": "POP",
      "path": "3"
    },
    "1368": {
      "fn": "ERC20._approve",
      "offset": [
        10110,
        10480
      ],
      "op": "POP",
      "path": "3"
    },
    "1369": {
      "fn": "ERC20._approve",
      "offset": [
        10110,
        10480
      ],
      "op": "POP",
      "path": "3"
    },
    "1370": {
      "fn": "ERC20._approve",
      "jump": "o",
      "offset": [
        10110,
        10480
      ],
      "op": "JUMP",
      "path": "3"
    },
    "1371": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        10761,
        11202
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "1372": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        10891,
        10915
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x0"
    },
    "1374": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        10918,
        10943
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x567"
    },
    "1377": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        10928,
        10933
      ],
      "op": "DUP5",
      "path": "3"
    },
    "1378": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        10935,
        10942
      ],
      "op": "DUP5",
      "path": "3"
    },
    "1379": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        10918,
        10927
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x40C"
    },
    "1382": {
      "fn": "ERC20._spendAllowance",
      "jump": "i",
      "offset": [
        10918,
        10943
      ],
      "op": "JUMP",
      "path": "3"
    },
    "1383": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        10918,
        10943
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "1384": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        10891,
        10943
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1385": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        10891,
        10943
      ],
      "op": "POP",
      "path": "3"
    },
    "1386": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1388": {
      "op": "NOT"
    },
    "1389": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        10957,
        10973
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1390": {
      "branch": 32,
      "fn": "ERC20._spendAllowance",
      "offset": [
        10957,
        10994
      ],
      "op": "EQ",
      "path": "3"
    },
    "1391": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        10953,
        11196
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x5CF"
    },
    "1394": {
      "branch": 32,
      "fn": "ERC20._spendAllowance",
      "offset": [
        10953,
        11196
      ],
      "op": "JUMPI",
      "path": "3"
    },
    "1395": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11038,
        11044
      ],
      "op": "DUP2",
      "path": "3",
      "statement": 20
    },
    "1396": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11018,
        11034
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1397": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11018,
        11044
      ],
      "op": "LT",
      "path": "3"
    },
    "1398": {
      "branch": 33,
      "fn": "ERC20._spendAllowance",
      "offset": [
        11018,
        11044
      ],
      "op": "ISZERO",
      "path": "3"
    },
    "1399": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11010,
        11078
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x5C2"
    },
    "1402": {
      "branch": 33,
      "fn": "ERC20._spendAllowance",
      "offset": [
        11010,
        11078
      ],
      "op": "JUMPI",
      "path": "3"
    },
    "1403": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11010,
        11078
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "1405": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11010,
        11078
      ],
      "op": "MLOAD",
      "path": "3"
    },
    "1406": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1410": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1412": {
      "op": "SHL"
    },
    "1413": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11010,
        11078
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1414": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11010,
        11078
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "1415": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1417": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11010,
        11078
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x4"
    },
    "1419": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11010,
        11078
      ],
      "op": "DUP3",
      "path": "3"
    },
    "1420": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11010,
        11078
      ],
      "op": "ADD",
      "path": "3"
    },
    "1421": {
      "op": "MSTORE"
    },
    "1422": {
      "op": "PUSH1",
      "value": "0x1D"
    },
    "1424": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1426": {
      "op": "DUP3"
    },
    "1427": {
      "op": "ADD"
    },
    "1428": {
      "op": "MSTORE"
    },
    "1429": {
      "op": "PUSH32",
      "value": "0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000"
    },
    "1462": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1464": {
      "op": "DUP3"
    },
    "1465": {
      "op": "ADD"
    },
    "1466": {
      "op": "MSTORE"
    },
    "1467": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1469": {
      "op": "ADD"
    },
    "1470": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11010,
        11078
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x3DD"
    },
    "1473": {
      "op": "JUMP"
    },
    "1474": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11010,
        11078
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "1475": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11120,
        11171
      ],
      "op": "PUSH2",
      "path": "3",
      "statement": 21,
      "value": "0x5CF"
    },
    "1478": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11129,
        11134
      ],
      "op": "DUP5",
      "path": "3"
    },
    "1479": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11136,
        11143
      ],
      "op": "DUP5",
      "path": "3"
    },
    "1480": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11164,
        11170
      ],
      "op": "DUP5",
      "path": "3"
    },
    "1481": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11145,
        11161
      ],
      "op": "DUP5",
      "path": "3"
    },
    "1482": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11145,
        11170
      ],
      "op": "SUB",
      "path": "3"
    },
    "1483": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11120,
        11128
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x437"
    },
    "1486": {
      "fn": "ERC20._spendAllowance",
      "jump": "i",
      "offset": [
        11120,
        11171
      ],
      "op": "JUMP",
      "path": "3"
    },
    "1487": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        11120,
        11171
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "1488": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        10761,
        11202
      ],
      "op": "POP",
      "path": "3"
    },
    "1489": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        10761,
        11202
      ],
      "op": "POP",
      "path": "3"
    },
    "1490": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        10761,
        11202
      ],
      "op": "POP",
      "path": "3"
    },
    "1491": {
      "fn": "ERC20._spendAllowance",
      "offset": [
        10761,
        11202
      ],
      "op": "POP",
      "path": "3"
    },
    "1492": {
      "fn": "ERC20._spendAllowance",
      "jump": "o",
      "offset": [
        10761,
        11202
      ],
      "op": "JUMP",
      "path": "3"
    },
    "1493": {
      "fn": "ERC20._transfer",
      "offset": [
        7475,
        8126
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "1494": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1496": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1498": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1500": {
      "op": "SHL"
    },
    "1501": {
      "op": "SUB"
    },
    "1502": {
      "fn": "ERC20._transfer",
      "offset": [
        7601,
        7619
      ],
      "op": "DUP4",
      "path": "3",
      "statement": 22
    },
    "1503": {
      "branch": 34,
      "fn": "ERC20._transfer",
      "offset": [
        7601,
        7619
      ],
      "op": "AND",
      "path": "3"
    },
    "1504": {
      "fn": "ERC20._transfer",
      "offset": [
        7593,
        7661
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x639"
    },
    "1507": {
      "branch": 34,
      "fn": "ERC20._transfer",
      "offset": [
        7593,
        7661
      ],
      "op": "JUMPI",
      "path": "3"
    },
    "1508": {
      "fn": "ERC20._transfer",
      "offset": [
        7593,
        7661
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "1510": {
      "fn": "ERC20._transfer",
      "offset": [
        7593,
        7661
      ],
      "op": "MLOAD",
      "path": "3"
    },
    "1511": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1515": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1517": {
      "op": "SHL"
    },
    "1518": {
      "fn": "ERC20._transfer",
      "offset": [
        7593,
        7661
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1519": {
      "fn": "ERC20._transfer",
      "offset": [
        7593,
        7661
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "1520": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1522": {
      "fn": "ERC20._transfer",
      "offset": [
        7593,
        7661
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x4"
    },
    "1524": {
      "fn": "ERC20._transfer",
      "offset": [
        7593,
        7661
      ],
      "op": "DUP3",
      "path": "3"
    },
    "1525": {
      "fn": "ERC20._transfer",
      "offset": [
        7593,
        7661
      ],
      "op": "ADD",
      "path": "3"
    },
    "1526": {
      "op": "MSTORE"
    },
    "1527": {
      "op": "PUSH1",
      "value": "0x25"
    },
    "1529": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1531": {
      "op": "DUP3"
    },
    "1532": {
      "op": "ADD"
    },
    "1533": {
      "op": "MSTORE"
    },
    "1534": {
      "op": "PUSH32",
      "value": "0x45524332303A207472616E736665722066726F6D20746865207A65726F206164"
    },
    "1567": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1569": {
      "op": "DUP3"
    },
    "1570": {
      "op": "ADD"
    },
    "1571": {
      "op": "MSTORE"
    },
    "1572": {
      "op": "PUSH5",
      "value": "0x6472657373"
    },
    "1578": {
      "op": "PUSH1",
      "value": "0xD8"
    },
    "1580": {
      "op": "SHL"
    },
    "1581": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1583": {
      "op": "DUP3"
    },
    "1584": {
      "op": "ADD"
    },
    "1585": {
      "op": "MSTORE"
    },
    "1586": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "1588": {
      "op": "ADD"
    },
    "1589": {
      "fn": "ERC20._transfer",
      "offset": [
        7593,
        7661
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x3DD"
    },
    "1592": {
      "op": "JUMP"
    },
    "1593": {
      "fn": "ERC20._transfer",
      "offset": [
        7593,
        7661
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "1594": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1596": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1598": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1600": {
      "op": "SHL"
    },
    "1601": {
      "op": "SUB"
    },
    "1602": {
      "fn": "ERC20._transfer",
      "offset": [
        7679,
        7695
      ],
      "op": "DUP3",
      "path": "3",
      "statement": 23
    },
    "1603": {
      "branch": 35,
      "fn": "ERC20._transfer",
      "offset": [
        7679,
        7695
      ],
      "op": "AND",
      "path": "3"
    },
    "1604": {
      "fn": "ERC20._transfer",
      "offset": [
        7671,
        7735
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x69B"
    },
    "1607": {
      "branch": 35,
      "fn": "ERC20._transfer",
      "offset": [
        7671,
        7735
      ],
      "op": "JUMPI",
      "path": "3"
    },
    "1608": {
      "fn": "ERC20._transfer",
      "offset": [
        7671,
        7735
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "1610": {
      "fn": "ERC20._transfer",
      "offset": [
        7671,
        7735
      ],
      "op": "MLOAD",
      "path": "3"
    },
    "1611": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1615": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1617": {
      "op": "SHL"
    },
    "1618": {
      "fn": "ERC20._transfer",
      "offset": [
        7671,
        7735
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1619": {
      "fn": "ERC20._transfer",
      "offset": [
        7671,
        7735
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "1620": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1622": {
      "fn": "ERC20._transfer",
      "offset": [
        7671,
        7735
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x4"
    },
    "1624": {
      "fn": "ERC20._transfer",
      "offset": [
        7671,
        7735
      ],
      "op": "DUP3",
      "path": "3"
    },
    "1625": {
      "fn": "ERC20._transfer",
      "offset": [
        7671,
        7735
      ],
      "op": "ADD",
      "path": "3"
    },
    "1626": {
      "op": "MSTORE"
    },
    "1627": {
      "op": "PUSH1",
      "value": "0x23"
    },
    "1629": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1631": {
      "op": "DUP3"
    },
    "1632": {
      "op": "ADD"
    },
    "1633": {
      "op": "MSTORE"
    },
    "1634": {
      "op": "PUSH32",
      "value": "0x45524332303A207472616E7366657220746F20746865207A65726F2061646472"
    },
    "1667": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1669": {
      "op": "DUP3"
    },
    "1670": {
      "op": "ADD"
    },
    "1671": {
      "op": "MSTORE"
    },
    "1672": {
      "op": "PUSH3",
      "value": "0x657373"
    },
    "1676": {
      "op": "PUSH1",
      "value": "0xE8"
    },
    "1678": {
      "op": "SHL"
    },
    "1679": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1681": {
      "op": "DUP3"
    },
    "1682": {
      "op": "ADD"
    },
    "1683": {
      "op": "MSTORE"
    },
    "1684": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "1686": {
      "op": "ADD"
    },
    "1687": {
      "fn": "ERC20._transfer",
      "offset": [
        7671,
        7735
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x3DD"
    },
    "1690": {
      "op": "JUMP"
    },
    "1691": {
      "fn": "ERC20._transfer",
      "offset": [
        7671,
        7735
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "1692": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1694": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1696": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1698": {
      "op": "SHL"
    },
    "1699": {
      "op": "SUB"
    },
    "1700": {
      "fn": "ERC20._transfer",
      "offset": [
        7817,
        7832
      ],
      "op": "DUP4",
      "path": "3"
    },
    "1701": {
      "fn": "ERC20._transfer",
      "offset": [
        7817,
        7832
      ],
      "op": "AND",
      "path": "3"
    },
    "1702": {
      "fn": "ERC20._transfer",
      "offset": [
        7795,
        7814
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x0"
    },
    "1704": {
      "fn": "ERC20._transfer",
      "offset": [
        7817,
        7832
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1705": {
      "fn": "ERC20._transfer",
      "offset": [
        7817,
        7832
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1706": {
      "fn": "ERC20._transfer",
      "offset": [
        7817,
        7832
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "1707": {
      "fn": "ERC20._transfer",
      "offset": [
        7817,
        7832
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x20"
    },
    "1709": {
      "fn": "ERC20._transfer",
      "offset": [
        7817,
        7832
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1710": {
      "fn": "ERC20._transfer",
      "offset": [
        7817,
        7832
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1711": {
      "fn": "ERC20._transfer",
      "offset": [
        7817,
        7832
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "1712": {
      "fn": "ERC20._transfer",
      "offset": [
        7817,
        7832
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "1714": {
      "fn": "ERC20._transfer",
      "offset": [
        7817,
        7832
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1715": {
      "fn": "ERC20._transfer",
      "offset": [
        7817,
        7832
      ],
      "op": "KECCAK256",
      "path": "3"
    },
    "1716": {
      "fn": "ERC20._transfer",
      "offset": [
        7817,
        7832
      ],
      "op": "SLOAD",
      "path": "3"
    },
    "1717": {
      "fn": "ERC20._transfer",
      "offset": [
        7850,
        7871
      ],
      "op": "DUP2",
      "path": "3",
      "statement": 24
    },
    "1718": {
      "fn": "ERC20._transfer",
      "offset": [
        7850,
        7871
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1719": {
      "fn": "ERC20._transfer",
      "offset": [
        7850,
        7871
      ],
      "op": "LT",
      "path": "3"
    },
    "1720": {
      "branch": 36,
      "fn": "ERC20._transfer",
      "offset": [
        7850,
        7871
      ],
      "op": "ISZERO",
      "path": "3"
    },
    "1721": {
      "fn": "ERC20._transfer",
      "offset": [
        7842,
        7914
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x713"
    },
    "1724": {
      "branch": 36,
      "fn": "ERC20._transfer",
      "offset": [
        7842,
        7914
      ],
      "op": "JUMPI",
      "path": "3"
    },
    "1725": {
      "fn": "ERC20._transfer",
      "offset": [
        7842,
        7914
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "1727": {
      "fn": "ERC20._transfer",
      "offset": [
        7842,
        7914
      ],
      "op": "MLOAD",
      "path": "3"
    },
    "1728": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1732": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1734": {
      "op": "SHL"
    },
    "1735": {
      "fn": "ERC20._transfer",
      "offset": [
        7842,
        7914
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1736": {
      "fn": "ERC20._transfer",
      "offset": [
        7842,
        7914
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "1737": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1739": {
      "fn": "ERC20._transfer",
      "offset": [
        7842,
        7914
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x4"
    },
    "1741": {
      "fn": "ERC20._transfer",
      "offset": [
        7842,
        7914
      ],
      "op": "DUP3",
      "path": "3"
    },
    "1742": {
      "fn": "ERC20._transfer",
      "offset": [
        7842,
        7914
      ],
      "op": "ADD",
      "path": "3"
    },
    "1743": {
      "op": "MSTORE"
    },
    "1744": {
      "op": "PUSH1",
      "value": "0x26"
    },
    "1746": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1748": {
      "op": "DUP3"
    },
    "1749": {
      "op": "ADD"
    },
    "1750": {
      "op": "MSTORE"
    },
    "1751": {
      "op": "PUSH32",
      "value": "0x45524332303A207472616E7366657220616D6F756E7420657863656564732062"
    },
    "1784": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1786": {
      "op": "DUP3"
    },
    "1787": {
      "op": "ADD"
    },
    "1788": {
      "op": "MSTORE"
    },
    "1789": {
      "op": "PUSH6",
      "value": "0x616C616E6365"
    },
    "1796": {
      "op": "PUSH1",
      "value": "0xD0"
    },
    "1798": {
      "op": "SHL"
    },
    "1799": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1801": {
      "op": "DUP3"
    },
    "1802": {
      "op": "ADD"
    },
    "1803": {
      "op": "MSTORE"
    },
    "1804": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "1806": {
      "op": "ADD"
    },
    "1807": {
      "fn": "ERC20._transfer",
      "offset": [
        7842,
        7914
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x3DD"
    },
    "1810": {
      "op": "JUMP"
    },
    "1811": {
      "fn": "ERC20._transfer",
      "offset": [
        7842,
        7914
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "1812": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1814": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1816": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1818": {
      "op": "SHL"
    },
    "1819": {
      "op": "SUB"
    },
    "1820": {
      "fn": "ERC20._transfer",
      "offset": [
        7948,
        7963
      ],
      "op": "DUP1",
      "path": "3",
      "statement": 25
    },
    "1821": {
      "fn": "ERC20._transfer",
      "offset": [
        7948,
        7963
      ],
      "op": "DUP6",
      "path": "3"
    },
    "1822": {
      "fn": "ERC20._transfer",
      "offset": [
        7948,
        7963
      ],
      "op": "AND",
      "path": "3"
    },
    "1823": {
      "fn": "ERC20._transfer",
      "offset": [
        7948,
        7957
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x0"
    },
    "1825": {
      "fn": "ERC20._transfer",
      "offset": [
        7948,
        7963
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1826": {
      "fn": "ERC20._transfer",
      "offset": [
        7948,
        7963
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1827": {
      "fn": "ERC20._transfer",
      "offset": [
        7948,
        7963
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "1828": {
      "fn": "ERC20._transfer",
      "offset": [
        7948,
        7963
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x20"
    },
    "1830": {
      "fn": "ERC20._transfer",
      "offset": [
        7948,
        7963
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1831": {
      "fn": "ERC20._transfer",
      "offset": [
        7948,
        7963
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1832": {
      "fn": "ERC20._transfer",
      "offset": [
        7948,
        7963
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "1833": {
      "fn": "ERC20._transfer",
      "offset": [
        7948,
        7963
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "1835": {
      "fn": "ERC20._transfer",
      "offset": [
        7948,
        7963
      ],
      "op": "DUP1",
      "path": "3"
    },
    "1836": {
      "fn": "ERC20._transfer",
      "offset": [
        7948,
        7963
      ],
      "op": "DUP3",
      "path": "3"
    },
    "1837": {
      "fn": "ERC20._transfer",
      "offset": [
        7948,
        7963
      ],
      "op": "KECCAK256",
      "path": "3"
    },
    "1838": {
      "fn": "ERC20._transfer",
      "offset": [
        7966,
        7986
      ],
      "op": "DUP6",
      "path": "3"
    },
    "1839": {
      "fn": "ERC20._transfer",
      "offset": [
        7966,
        7986
      ],
      "op": "DUP6",
      "path": "3"
    },
    "1840": {
      "fn": "ERC20._transfer",
      "offset": [
        7966,
        7986
      ],
      "op": "SUB",
      "path": "3"
    },
    "1841": {
      "fn": "ERC20._transfer",
      "offset": [
        7948,
        7986
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1842": {
      "fn": "ERC20._transfer",
      "offset": [
        7948,
        7986
      ],
      "op": "SSTORE",
      "path": "3"
    },
    "1843": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8019
      ],
      "op": "SWAP2",
      "path": "3",
      "statement": 26
    },
    "1844": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8019
      ],
      "op": "DUP6",
      "path": "3"
    },
    "1845": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8019
      ],
      "op": "AND",
      "path": "3"
    },
    "1846": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8019
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1847": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8019
      ],
      "op": "MSTORE",
      "path": "3"
    },
    "1848": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8019
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1849": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8019
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1850": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8019
      ],
      "op": "KECCAK256",
      "path": "3"
    },
    "1851": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8029
      ],
      "op": "DUP1",
      "path": "3"
    },
    "1852": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8029
      ],
      "op": "SLOAD",
      "path": "3"
    },
    "1853": {
      "fn": "ERC20._transfer",
      "offset": [
        7980,
        7986
      ],
      "op": "DUP5",
      "path": "3"
    },
    "1854": {
      "fn": "ERC20._transfer",
      "offset": [
        7980,
        7986
      ],
      "op": "SWAP3",
      "path": "3"
    },
    "1855": {
      "fn": "ERC20._transfer",
      "offset": [
        7948,
        7957
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1856": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8029
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x74A"
    },
    "1859": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8029
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1860": {
      "fn": "ERC20._transfer",
      "offset": [
        7980,
        7986
      ],
      "op": "DUP5",
      "path": "3"
    },
    "1861": {
      "fn": "ERC20._transfer",
      "offset": [
        7980,
        7986
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1862": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8029
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x8BD"
    },
    "1865": {
      "fn": "ERC20._transfer",
      "jump": "i",
      "offset": [
        8006,
        8029
      ],
      "op": "JUMP",
      "path": "3"
    },
    "1866": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8029
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "1867": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8029
      ],
      "op": "SWAP3",
      "path": "3"
    },
    "1868": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8029
      ],
      "op": "POP",
      "path": "3"
    },
    "1869": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8029
      ],
      "op": "POP",
      "path": "3"
    },
    "1870": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8029
      ],
      "op": "DUP2",
      "path": "3"
    },
    "1871": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8029
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1872": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8029
      ],
      "op": "SSTORE",
      "path": "3"
    },
    "1873": {
      "fn": "ERC20._transfer",
      "offset": [
        8006,
        8029
      ],
      "op": "POP",
      "path": "3"
    },
    "1874": {
      "fn": "ERC20._transfer",
      "offset": [
        8060,
        8062
      ],
      "op": "DUP3",
      "path": "3",
      "statement": 27
    },
    "1875": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1877": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1879": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1881": {
      "op": "SHL"
    },
    "1882": {
      "op": "SUB"
    },
    "1883": {
      "fn": "ERC20._transfer",
      "offset": [
        8045,
        8071
      ],
      "op": "AND",
      "path": "3"
    },
    "1884": {
      "fn": "ERC20._transfer",
      "offset": [
        8054,
        8058
      ],
      "op": "DUP5",
      "path": "3"
    },
    "1885": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1887": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1889": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1891": {
      "op": "SHL"
    },
    "1892": {
      "op": "SUB"
    },
    "1893": {
      "fn": "ERC20._transfer",
      "offset": [
        8045,
        8071
      ],
      "op": "AND",
      "path": "3"
    },
    "1894": {
      "fn": "ERC20._transfer",
      "offset": [
        8045,
        8071
      ],
      "op": "PUSH32",
      "path": "3",
      "value": "0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF"
    },
    "1927": {
      "fn": "ERC20._transfer",
      "offset": [
        8064,
        8070
      ],
      "op": "DUP5",
      "path": "3"
    },
    "1928": {
      "fn": "ERC20._transfer",
      "offset": [
        8045,
        8071
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "1930": {
      "fn": "ERC20._transfer",
      "offset": [
        8045,
        8071
      ],
      "op": "MLOAD",
      "path": "3"
    },
    "1931": {
      "fn": "ERC20._transfer",
      "offset": [
        8045,
        8071
      ],
      "op": "PUSH2",
      "path": "3",
      "value": "0x796"
    },
    "1934": {
      "fn": "ERC20._transfer",
      "offset": [
        8045,
        8071
      ],
      "op": "SWAP2",
      "path": "3"
    },
    "1935": {
      "op": "DUP2"
    },
    "1936": {
      "op": "MSTORE"
    },
    "1937": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1939": {
      "op": "ADD"
    },
    "1940": {
      "op": "SWAP1"
    },
    "1941": {
      "op": "JUMP"
    },
    "1942": {
      "fn": "ERC20._transfer",
      "offset": [
        8045,
        8071
      ],
      "op": "JUMPDEST",
      "path": "3"
    },
    "1943": {
      "fn": "ERC20._transfer",
      "offset": [
        8045,
        8071
      ],
      "op": "PUSH1",
      "path": "3",
      "value": "0x40"
    },
    "1945": {
      "fn": "ERC20._transfer",
      "offset": [
        8045,
        8071
      ],
      "op": "MLOAD",
      "path": "3"
    },
    "1946": {
      "fn": "ERC20._transfer",
      "offset": [
        8045,
        8071
      ],
      "op": "DUP1",
      "path": "3"
    },
    "1947": {
      "fn": "ERC20._transfer",
      "offset": [
        8045,
        8071
      ],
      "op": "SWAP2",
      "path": "3"
    },
    "1948": {
      "fn": "ERC20._transfer",
      "offset": [
        8045,
        8071
      ],
      "op": "SUB",
      "path": "3"
    },
    "1949": {
      "fn": "ERC20._transfer",
      "offset": [
        8045,
        8071
      ],
      "op": "SWAP1",
      "path": "3"
    },
    "1950": {
      "fn": "ERC20._transfer",
      "offset": [
        8045,
        8071
      ],
      "op": "LOG3",
      "path": "3"
    },
    "1951": {
      "fn": "ERC20._transfer",
      "offset": [
        8082,
        8119
      ],
      "op": "PUSH2",
      "path": "3",
      "statement": 28,
      "value": "0x5CF"
    },
    "1954": {
      "fn": "ERC20._beforeTokenTransfer",
      "offset": [
        11786,
        11907
      ],
      "op": "JUMP",
      "path": "3"
    },
    "1955": {
      "op": "JUMPDEST"
    },
    "1956": {
      "op": "DUP1"
    },
    "1957": {
      "op": "CALLDATALOAD"
    },
    "1958": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1960": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1962": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1964": {
      "op": "SHL"
    },
    "1965": {
      "op": "SUB"
    },
    "1966": {
      "op": "DUP2"
    },
    "1967": {
      "op": "AND"
    },
    "1968": {
      "op": "DUP2"
    },
    "1969": {
      "op": "EQ"
    },
    "1970": {
      "op": "PUSH2",
      "value": "0x343"
    },
    "1973": {
      "op": "JUMPI"
    },
    "1974": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1976": {
      "op": "DUP1"
    },
    "1977": {
      "op": "REVERT"
    },
    "1978": {
      "op": "JUMPDEST"
    },
    "1979": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1981": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1983": {
      "op": "DUP3"
    },
    "1984": {
      "op": "DUP5"
    },
    "1985": {
      "op": "SUB"
    },
    "1986": {
      "op": "SLT"
    },
    "1987": {
      "op": "ISZERO"
    },
    "1988": {
      "op": "PUSH2",
      "value": "0x7CB"
    },
    "1991": {
      "op": "JUMPI"
    },
    "1992": {
      "op": "DUP1"
    },
    "1993": {
      "op": "DUP2"
    },
    "1994": {
      "op": "REVERT"
    },
    "1995": {
      "op": "JUMPDEST"
    },
    "1996": {
      "op": "PUSH2",
      "value": "0x2E3"
    },
    "1999": {
      "op": "DUP3"
    },
    "2000": {
      "op": "PUSH2",
      "value": "0x7A3"
    },
    "2003": {
      "jump": "i",
      "op": "JUMP"
    },
    "2004": {
      "op": "JUMPDEST"
    },
    "2005": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2007": {
      "op": "DUP1"
    },
    "2008": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2010": {
      "op": "DUP4"
    },
    "2011": {
      "op": "DUP6"
    },
    "2012": {
      "op": "SUB"
    },
    "2013": {
      "op": "SLT"
    },
    "2014": {
      "op": "ISZERO"
    },
    "2015": {
      "op": "PUSH2",
      "value": "0x7E6"
    },
    "2018": {
      "op": "JUMPI"
    },
    "2019": {
      "op": "DUP1"
    },
    "2020": {
      "op": "DUP2"
    },
    "2021": {
      "op": "REVERT"
    },
    "2022": {
      "op": "JUMPDEST"
    },
    "2023": {
      "op": "PUSH2",
      "value": "0x7EF"
    },
    "2026": {
      "op": "DUP4"
    },
    "2027": {
      "op": "PUSH2",
      "value": "0x7A3"
    },
    "2030": {
      "jump": "i",
      "op": "JUMP"
    },
    "2031": {
      "op": "JUMPDEST"
    },
    "2032": {
      "op": "SWAP2"
    },
    "2033": {
      "op": "POP"
    },
    "2034": {
      "op": "PUSH2",
      "value": "0x7FD"
    },
    "2037": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2039": {
      "op": "DUP5"
    },
    "2040": {
      "op": "ADD"
    },
    "2041": {
      "op": "PUSH2",
      "value": "0x7A3"
    },
    "2044": {
      "jump": "i",
      "op": "JUMP"
    },
    "2045": {
      "op": "JUMPDEST"
    },
    "2046": {
      "op": "SWAP1"
    },
    "2047": {
      "op": "POP"
    },
    "2048": {
      "op": "SWAP3"
    },
    "2049": {
      "op": "POP"
    },
    "2050": {
      "op": "SWAP3"
    },
    "2051": {
      "op": "SWAP1"
    },
    "2052": {
      "op": "POP"
    },
    "2053": {
      "jump": "o",
      "op": "JUMP"
    },
    "2054": {
      "op": "JUMPDEST"
    },
    "2055": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2057": {
      "op": "DUP1"
    },
    "2058": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2060": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "2062": {
      "op": "DUP5"
    },
    "2063": {
      "op": "DUP7"
    },
    "2064": {
      "op": "SUB"
    },
    "2065": {
      "op": "SLT"
    },
    "2066": {
      "op": "ISZERO"
    },
    "2067": {
      "op": "PUSH2",
      "value": "0x81A"
    },
    "2070": {
      "op": "JUMPI"
    },
    "2071": {
      "op": "DUP1"
    },
    "2072": {
      "op": "DUP2"
    },
    "2073": {
      "op": "REVERT"
    },
    "2074": {
      "op": "JUMPDEST"
    },
    "2075": {
      "op": "PUSH2",
      "value": "0x823"
    },
    "2078": {
      "op": "DUP5"
    },
    "2079": {
      "op": "PUSH2",
      "value": "0x7A3"
    },
    "2082": {
      "jump": "i",
      "op": "JUMP"
    },
    "2083": {
      "op": "JUMPDEST"
    },
    "2084": {
      "op": "SWAP3"
    },
    "2085": {
      "op": "POP"
    },
    "2086": {
      "op": "PUSH2",
      "value": "0x831"
    },
    "2089": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2091": {
      "op": "DUP6"
    },
    "2092": {
      "op": "ADD"
    },
    "2093": {
      "op": "PUSH2",
      "value": "0x7A3"
    },
    "2096": {
      "jump": "i",
      "op": "JUMP"
    },
    "2097": {
      "op": "JUMPDEST"
    },
    "2098": {
      "op": "SWAP2"
    },
    "2099": {
      "op": "POP"
    },
    "2100": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2102": {
      "op": "DUP5"
    },
    "2103": {
      "op": "ADD"
    },
    "2104": {
      "op": "CALLDATALOAD"
    },
    "2105": {
      "op": "SWAP1"
    },
    "2106": {
      "op": "POP"
    },
    "2107": {
      "op": "SWAP3"
    },
    "2108": {
      "op": "POP"
    },
    "2109": {
      "op": "SWAP3"
    },
    "2110": {
      "op": "POP"
    },
    "2111": {
      "op": "SWAP3"
    },
    "2112": {
      "jump": "o",
      "op": "JUMP"
    },
    "2113": {
      "op": "JUMPDEST"
    },
    "2114": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2116": {
      "op": "DUP1"
    },
    "2117": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2119": {
      "op": "DUP4"
    },
    "2120": {
      "op": "DUP6"
    },
    "2121": {
      "op": "SUB"
    },
    "2122": {
      "op": "SLT"
    },
    "2123": {
      "op": "ISZERO"
    },
    "2124": {
      "op": "PUSH2",
      "value": "0x853"
    },
    "2127": {
      "op": "JUMPI"
    },
    "2128": {
      "op": "DUP2"
    },
    "2129": {
      "op": "DUP3"
    },
    "2130": {
      "op": "REVERT"
    },
    "2131": {
      "op": "JUMPDEST"
    },
    "2132": {
      "op": "PUSH2",
      "value": "0x85C"
    },
    "2135": {
      "op": "DUP4"
    },
    "2136": {
      "op": "PUSH2",
      "value": "0x7A3"
    },
    "2139": {
      "jump": "i",
      "op": "JUMP"
    },
    "2140": {
      "op": "JUMPDEST"
    },
    "2141": {
      "op": "SWAP5"
    },
    "2142": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2144": {
      "op": "SWAP4"
    },
    "2145": {
      "op": "SWAP1"
    },
    "2146": {
      "op": "SWAP4"
    },
    "2147": {
      "op": "ADD"
    },
    "2148": {
      "op": "CALLDATALOAD"
    },
    "2149": {
      "op": "SWAP4"
    },
    "2150": {
      "op": "POP"
    },
    "2151": {
      "op": "POP"
    },
    "2152": {
      "op": "POP"
    },
    "2153": {
      "jump": "o",
      "op": "JUMP"
    },
    "2154": {
      "op": "JUMPDEST"
    },
    "2155": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2157": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2159": {
      "op": "DUP1"
    },
    "2160": {
      "op": "DUP4"
    },
    "2161": {
      "op": "MSTORE"
    },
    "2162": {
      "op": "DUP4"
    },
    "2163": {
      "op": "MLOAD"
    },
    "2164": {
      "op": "DUP1"
    },
    "2165": {
      "op": "DUP3"
    },
    "2166": {
      "op": "DUP6"
    },
    "2167": {
      "op": "ADD"
    },
    "2168": {
      "op": "MSTORE"
    },
    "2169": {
      "op": "DUP3"
    },
    "2170": {
      "op": "JUMPDEST"
    },
    "2171": {
      "op": "DUP2"
    },
    "2172": {
      "op": "DUP2"
    },
    "2173": {
      "op": "LT"
    },
    "2174": {
      "op": "ISZERO"
    },
    "2175": {
      "op": "PUSH2",
      "value": "0x896"
    },
    "2178": {
      "op": "JUMPI"
    },
    "2179": {
      "op": "DUP6"
    },
    "2180": {
      "op": "DUP2"
    },
    "2181": {
      "op": "ADD"
    },
    "2182": {
      "op": "DUP4"
    },
    "2183": {
      "op": "ADD"
    },
    "2184": {
      "op": "MLOAD"
    },
    "2185": {
      "op": "DUP6"
    },
    "2186": {
      "op": "DUP3"
    },
    "2187": {
      "op": "ADD"
    },
    "2188": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2190": {
      "op": "ADD"
    },
    "2191": {
      "op": "MSTORE"
    },
    "2192": {
      "op": "DUP3"
    },
    "2193": {
      "op": "ADD"
    },
    "2194": {
      "op": "PUSH2",
      "value": "0x87A"
    },
    "2197": {
      "op": "JUMP"
    },
    "2198": {
      "op": "JUMPDEST"
    },
    "2199": {
      "op": "DUP2"
    },
    "2200": {
      "op": "DUP2"
    },
    "2201": {
      "op": "GT"
    },
    "2202": {
      "op": "ISZERO"
    },
    "2203": {
      "op": "PUSH2",
      "value": "0x8A7"
    },
    "2206": {
      "op": "JUMPI"
    },
    "2207": {
      "op": "DUP4"
    },
    "2208": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2210": {
      "op": "DUP4"
    },
    "2211": {
      "op": "DUP8"
    },
    "2212": {
      "op": "ADD"
    },
    "2213": {
      "op": "ADD"
    },
    "2214": {
      "op": "MSTORE"
    },
    "2215": {
      "op": "JUMPDEST"
    },
    "2216": {
      "op": "POP"
    },
    "2217": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "2219": {
      "op": "ADD"
    },
    "2220": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "2222": {
      "op": "NOT"
    },
    "2223": {
      "op": "AND"
    },
    "2224": {
      "op": "SWAP3"
    },
    "2225": {
      "op": "SWAP1"
    },
    "2226": {
      "op": "SWAP3"
    },
    "2227": {
      "op": "ADD"
    },
    "2228": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2230": {
      "op": "ADD"
    },
    "2231": {
      "op": "SWAP4"
    },
    "2232": {
      "op": "SWAP3"
    },
    "2233": {
      "op": "POP"
    },
    "2234": {
      "op": "POP"
    },
    "2235": {
      "op": "POP"
    },
    "2236": {
      "jump": "o",
      "op": "JUMP"
    },
    "2237": {
      "op": "JUMPDEST"
    },
    "2238": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2240": {
      "op": "DUP3"
    },
    "2241": {
      "op": "NOT"
    },
    "2242": {
      "op": "DUP3"
    },
    "2243": {
      "op": "GT"
    },
    "2244": {
      "op": "ISZERO"
    },
    "2245": {
      "op": "PUSH2",
      "value": "0x8D0"
    },
    "2248": {
      "op": "JUMPI"
    },
    "2249": {
      "op": "PUSH2",
      "value": "0x8D0"
    },
    "2252": {
      "op": "PUSH2",
      "value": "0xA46"
    },
    "2255": {
      "jump": "i",
      "op": "JUMP"
    },
    "2256": {
      "op": "JUMPDEST"
    },
    "2257": {
      "op": "POP"
    },
    "2258": {
      "op": "ADD"
    },
    "2259": {
      "op": "SWAP1"
    },
    "2260": {
      "jump": "o",
      "op": "JUMP"
    },
    "2261": {
      "op": "JUMPDEST"
    },
    "2262": {
      "op": "DUP1"
    },
    "2263": {
      "op": "DUP3"
    },
    "2264": {
      "op": "JUMPDEST"
    },
    "2265": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2267": {
      "op": "DUP1"
    },
    "2268": {
      "op": "DUP7"
    },
    "2269": {
      "op": "GT"
    },
    "2270": {
      "op": "PUSH2",
      "value": "0x8E7"
    },
    "2273": {
      "op": "JUMPI"
    },
    "2274": {
      "op": "POP"
    },
    "2275": {
      "op": "PUSH2",
      "value": "0x912"
    },
    "2278": {
      "op": "JUMP"
    },
    "2279": {
      "op": "JUMPDEST"
    },
    "2280": {
      "op": "DUP2"
    },
    "2281": {
      "op": "DUP8"
    },
    "2282": {
      "op": "DIV"
    },
    "2283": {
      "op": "DUP3"
    },
    "2284": {
      "op": "GT"
    },
    "2285": {
      "op": "ISZERO"
    },
    "2286": {
      "op": "PUSH2",
      "value": "0x8F9"
    },
    "2289": {
      "op": "JUMPI"
    },
    "2290": {
      "op": "PUSH2",
      "value": "0x8F9"
    },
    "2293": {
      "op": "PUSH2",
      "value": "0xA46"
    },
    "2296": {
      "jump": "i",
      "op": "JUMP"
    },
    "2297": {
      "op": "JUMPDEST"
    },
    "2298": {
      "op": "DUP1"
    },
    "2299": {
      "op": "DUP7"
    },
    "2300": {
      "op": "AND"
    },
    "2301": {
      "op": "ISZERO"
    },
    "2302": {
      "op": "PUSH2",
      "value": "0x906"
    },
    "2305": {
      "op": "JUMPI"
    },
    "2306": {
      "op": "SWAP2"
    },
    "2307": {
      "op": "DUP2"
    },
    "2308": {
      "op": "MUL"
    },
    "2309": {
      "op": "SWAP2"
    },
    "2310": {
      "op": "JUMPDEST"
    },
    "2311": {
      "op": "SWAP5"
    },
    "2312": {
      "op": "SWAP1"
    },
    "2313": {
      "op": "SWAP5"
    },
    "2314": {
      "op": "SHR"
    },
    "2315": {
      "op": "SWAP4"
    },
    "2316": {
      "op": "DUP1"
    },
    "2317": {
      "op": "MUL"
    },
    "2318": {
      "op": "PUSH2",
      "value": "0x8D8"
    },
    "2321": {
      "op": "JUMP"
    },
    "2322": {
      "op": "JUMPDEST"
    },
    "2323": {
      "op": "SWAP5"
    },
    "2324": {
      "op": "POP"
    },
    "2325": {
      "op": "SWAP5"
    },
    "2326": {
      "op": "SWAP3"
    },
    "2327": {
      "op": "POP"
    },
    "2328": {
      "op": "POP"
    },
    "2329": {
      "op": "POP"
    },
    "2330": {
      "jump": "o",
      "op": "JUMP"
    },
    "2331": {
      "op": "JUMPDEST"
    },
    "2332": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2334": {
      "op": "PUSH2",
      "value": "0x2E3"
    },
    "2337": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2339": {
      "op": "NOT"
    },
    "2340": {
      "op": "PUSH1",
      "value": "0xFF"
    },
    "2342": {
      "op": "DUP6"
    },
    "2343": {
      "op": "AND"
    },
    "2344": {
      "op": "DUP5"
    },
    "2345": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2347": {
      "op": "DUP3"
    },
    "2348": {
      "op": "PUSH2",
      "value": "0x937"
    },
    "2351": {
      "op": "JUMPI"
    },
    "2352": {
      "op": "POP"
    },
    "2353": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2355": {
      "op": "PUSH2",
      "value": "0x2E3"
    },
    "2358": {
      "op": "JUMP"
    },
    "2359": {
      "op": "JUMPDEST"
    },
    "2360": {
      "op": "DUP2"
    },
    "2361": {
      "op": "PUSH2",
      "value": "0x944"
    },
    "2364": {
      "op": "JUMPI"
    },
    "2365": {
      "op": "POP"
    },
    "2366": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2368": {
      "op": "PUSH2",
      "value": "0x2E3"
    },
    "2371": {
      "op": "JUMP"
    },
    "2372": {
      "op": "JUMPDEST"
    },
    "2373": {
      "op": "DUP2"
    },
    "2374": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2376": {
      "op": "DUP2"
    },
    "2377": {
      "op": "EQ"
    },
    "2378": {
      "op": "PUSH2",
      "value": "0x95A"
    },
    "2381": {
      "op": "JUMPI"
    },
    "2382": {
      "op": "PUSH1",
      "value": "0x2"
    },
    "2384": {
      "op": "DUP2"
    },
    "2385": {
      "op": "EQ"
    },
    "2386": {
      "op": "PUSH2",
      "value": "0x964"
    },
    "2389": {
      "op": "JUMPI"
    },
    "2390": {
      "op": "PUSH2",
      "value": "0x991"
    },
    "2393": {
      "op": "JUMP"
    },
    "2394": {
      "op": "JUMPDEST"
    },
    "2395": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2397": {
      "op": "SWAP2"
    },
    "2398": {
      "op": "POP"
    },
    "2399": {
      "op": "POP"
    },
    "2400": {
      "op": "PUSH2",
      "value": "0x2E3"
    },
    "2403": {
      "op": "JUMP"
    },
    "2404": {
      "op": "JUMPDEST"
    },
    "2405": {
      "op": "PUSH1",
      "value": "0xFF"
    },
    "2407": {
      "op": "DUP5"
    },
    "2408": {
      "op": "GT"
    },
    "2409": {
      "op": "ISZERO"
    },
    "2410": {
      "op": "PUSH2",
      "value": "0x975"
    },
    "2413": {
      "op": "JUMPI"
    },
    "2414": {
      "op": "PUSH2",
      "value": "0x975"
    },
    "2417": {
      "op": "PUSH2",
      "value": "0xA46"
    },
    "2420": {
      "jump": "i",
      "op": "JUMP"
    },
    "2421": {
      "op": "JUMPDEST"
    },
    "2422": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2424": {
      "op": "DUP5"
    },
    "2425": {
      "op": "SHL"
    },
    "2426": {
      "op": "SWAP2"
    },
    "2427": {
      "op": "POP"
    },
    "2428": {
      "op": "DUP5"
    },
    "2429": {
      "op": "DUP3"
    },
    "2430": {
      "op": "GT"
    },
    "2431": {
      "op": "ISZERO"
    },
    "2432": {
      "op": "PUSH2",
      "value": "0x98B"
    },
    "2435": {
      "op": "JUMPI"
    },
    "2436": {
      "op": "PUSH2",
      "value": "0x98B"
    },
    "2439": {
      "op": "PUSH2",
      "value": "0xA46"
    },
    "2442": {
      "jump": "i",
      "op": "JUMP"
    },
    "2443": {
      "op": "JUMPDEST"
    },
    "2444": {
      "op": "POP"
    },
    "2445": {
      "op": "PUSH2",
      "value": "0x2E3"
    },
    "2448": {
      "op": "JUMP"
    },
    "2449": {
      "op": "JUMPDEST"
    },
    "2450": {
      "op": "POP"
    },
    "2451": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2453": {
      "op": "DUP4"
    },
    "2454": {
      "op": "LT"
    },
    "2455": {
      "op": "PUSH2",
      "value": "0x133"
    },
    "2458": {
      "op": "DUP4"
    },
    "2459": {
      "op": "LT"
    },
    "2460": {
      "op": "AND"
    },
    "2461": {
      "op": "PUSH1",
      "value": "0x4E"
    },
    "2463": {
      "op": "DUP5"
    },
    "2464": {
      "op": "LT"
    },
    "2465": {
      "op": "PUSH1",
      "value": "0xB"
    },
    "2467": {
      "op": "DUP5"
    },
    "2468": {
      "op": "LT"
    },
    "2469": {
      "op": "AND"
    },
    "2470": {
      "op": "OR"
    },
    "2471": {
      "op": "ISZERO"
    },
    "2472": {
      "op": "PUSH2",
      "value": "0x9C4"
    },
    "2475": {
      "op": "JUMPI"
    },
    "2476": {
      "op": "POP"
    },
    "2477": {
      "op": "DUP2"
    },
    "2478": {
      "op": "DUP2"
    },
    "2479": {
      "op": "EXP"
    },
    "2480": {
      "op": "DUP4"
    },
    "2481": {
      "op": "DUP2"
    },
    "2482": {
      "op": "GT"
    },
    "2483": {
      "op": "ISZERO"
    },
    "2484": {
      "op": "PUSH2",
      "value": "0x9BF"
    },
    "2487": {
      "op": "JUMPI"
    },
    "2488": {
      "op": "PUSH2",
      "value": "0x9BF"
    },
    "2491": {
      "op": "PUSH2",
      "value": "0xA46"
    },
    "2494": {
      "jump": "i",
      "op": "JUMP"
    },
    "2495": {
      "op": "JUMPDEST"
    },
    "2496": {
      "op": "PUSH2",
      "value": "0x2E3"
    },
    "2499": {
      "op": "JUMP"
    },
    "2500": {
      "op": "JUMPDEST"
    },
    "2501": {
      "op": "PUSH2",
      "value": "0x9D1"
    },
    "2504": {
      "op": "DUP5"
    },
    "2505": {
      "op": "DUP5"
    },
    "2506": {
      "op": "DUP5"
    },
    "2507": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2509": {
      "op": "PUSH2",
      "value": "0x8D5"
    },
    "2512": {
      "jump": "i",
      "op": "JUMP"
    },
    "2513": {
      "op": "JUMPDEST"
    },
    "2514": {
      "op": "DUP1"
    },
    "2515": {
      "op": "DUP7"
    },
    "2516": {
      "op": "DIV"
    },
    "2517": {
      "op": "DUP3"
    },
    "2518": {
      "op": "GT"
    },
    "2519": {
      "op": "ISZERO"
    },
    "2520": {
      "op": "PUSH2",
      "value": "0x9E3"
    },
    "2523": {
      "op": "JUMPI"
    },
    "2524": {
      "op": "PUSH2",
      "value": "0x9E3"
    },
    "2527": {
      "op": "PUSH2",
      "value": "0xA46"
    },
    "2530": {
      "jump": "i",
      "op": "JUMP"
    },
    "2531": {
      "op": "JUMPDEST"
    },
    "2532": {
      "op": "MUL"
    },
    "2533": {
      "op": "SWAP5"
    },
    "2534": {
      "op": "SWAP4"
    },
    "2535": {
      "op": "POP"
    },
    "2536": {
      "op": "POP"
    },
    "2537": {
      "op": "POP"
    },
    "2538": {
      "op": "POP"
    },
    "2539": {
      "jump": "o",
      "op": "JUMP"
    },
    "2540": {
      "op": "JUMPDEST"
    },
    "2541": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2543": {
      "op": "DUP2"
    },
    "2544": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2546": {
      "op": "NOT"
    },
    "2547": {
      "op": "DIV"
    },
    "2548": {
      "op": "DUP4"
    },
    "2549": {
      "op": "GT"
    },
    "2550": {
      "op": "DUP3"
    },
    "2551": {
      "op": "ISZERO"
    },
    "2552": {
      "op": "ISZERO"
    },
    "2553": {
      "op": "AND"
    },
    "2554": {
      "op": "ISZERO"
    },
    "2555": {
      "op": "PUSH2",
      "value": "0xA06"
    },
    "2558": {
      "op": "JUMPI"
    },
    "2559": {
      "op": "PUSH2",
      "value": "0xA06"
    },
    "2562": {
      "op": "PUSH2",
      "value": "0xA46"
    },
    "2565": {
      "jump": "i",
      "op": "JUMP"
    },
    "2566": {
      "op": "JUMPDEST"
    },
    "2567": {
      "op": "POP"
    },
    "2568": {
      "op": "MUL"
    },
    "2569": {
      "op": "SWAP1"
    },
    "2570": {
      "jump": "o",
      "op": "JUMP"
    },
    "2571": {
      "op": "JUMPDEST"
    },
    "2572": {
      "op": "PUSH1",
      "value": "0x2"
    },
    "2574": {
      "op": "DUP2"
    },
    "2575": {
      "op": "DIV"
    },
    "2576": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2578": {
      "op": "DUP3"
    },
    "2579": {
      "op": "AND"
    },
    "2580": {
      "op": "DUP1"
    },
    "2581": {
      "op": "PUSH2",
      "value": "0xA1F"
    },
    "2584": {
      "op": "JUMPI"
    },
    "2585": {
      "op": "PUSH1",
      "value": "0x7F"
    },
    "2587": {
      "op": "DUP3"
    },
    "2588": {
      "op": "AND"
    },
    "2589": {
      "op": "SWAP2"
    },
    "2590": {
      "op": "POP"
    },
    "2591": {
      "op": "JUMPDEST"
    },
    "2592": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2594": {
      "op": "DUP3"
    },
    "2595": {
      "op": "LT"
    },
    "2596": {
      "op": "DUP2"
    },
    "2597": {
      "op": "EQ"
    },
    "2598": {
      "op": "ISZERO"
    },
    "2599": {
      "op": "PUSH2",
      "value": "0xA40"
    },
    "2602": {
      "op": "JUMPI"
    },
    "2603": {
      "op": "PUSH4",
      "value": "0x4E487B71"
    },
    "2608": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "2610": {
      "op": "SHL"
    },
    "2611": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2613": {
      "op": "MSTORE"
    },
    "2614": {
      "op": "PUSH1",
      "value": "0x22"
    },
    "2616": {
      "op": "PUSH1",
      "value": "0x4"
    },
    "2618": {
      "op": "MSTORE"
    },
    "2619": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "2621": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2623": {
      "op": "REVERT"
    },
    "2624": {
      "op": "JUMPDEST"
    },
    "2625": {
      "op": "POP"
    },
    "2626": {
      "op": "SWAP2"
    },
    "2627": {
      "op": "SWAP1"
    },
    "2628": {
      "op": "POP"
    },
    "2629": {
      "jump": "o",
      "op": "JUMP"
    },
    "2630": {
      "op": "JUMPDEST"
    },
    "2631": {
      "op": "PUSH4",
      "value": "0x4E487B71"
    },
    "2636": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "2638": {
      "op": "SHL"
    },
    "2639": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2641": {
      "op": "MSTORE"
    },
    "2642": {
      "op": "PUSH1",
      "value": "0x11"
    },
    "2644": {
      "op": "PUSH1",
      "value": "0x4"
    },
    "2646": {
      "op": "MSTORE"
    },
    "2647": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "2649": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2651": {
      "op": "REVERT"
    }
  },
  "sha1": "259b85784dfaf57f2e4f7e5d987c3b6b7e57556d",
  "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport {ERC20} from \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\ncontract USD1 is ERC20 {\n\n    // https://etherscan.io/address/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48#readProxyContract\n    string public constant NAME = \"USD Coin - DUMMY\";\n    string public constant SYMBOL = \"USDC\";\n    uint8 public constant DECIMALS = 6;\n\n    uint256 public constant INITIAL_SUPPLY = 10**24;\n\n    event LogUsd1Transfer(address from, address to, uint256 amount, uint256 time, uint256 blockNumber);\n    event LogUsd1TransferFrom(address from, address to, uint256 amount, uint256 time, uint256 blockNumber);\n    constructor()\n        ERC20(NAME, SYMBOL)\n    {\n        _mint(\n            _msgSender(),\n            INITIAL_SUPPLY\n        );\n    }\n\n    function decimals() public pure override returns(uint8) {\n        return DECIMALS;\n    }\n\n    function transfer(address to, uint256 amount) public virtual override returns (bool) {\n        address from = _msgSender();\n        // solhint-disable-next-line not-rely-on-time\n        emit LogUsd1TransferFrom(from, to, amount, block.timestamp, block.number);\n        return super.transfer(to, amount);\n    }\n    \n    function transferFrom(address from, address to, uint256 amount) \n        public virtual override returns (bool) \n    {\n        // solhint-disable-next-line not-rely-on-time\n        emit LogUsd1TransferFrom(from, to, amount, block.timestamp, block.number);\n        return super.transferFrom(from, to, amount);\n    }    \n}\n\n\ncontract USD2 is ERC20 {\n\n    // https://etherscan.io/address/0xdac17f958d2ee523a2206206994597c13d831ec7\n    string public constant NAME = \"Tether USD - DUMMY\";\n    string public constant SYMBOL = \"USDT\";\n    uint8 public constant DECIMALS = 6;\n\n    uint256 public constant INITIAL_SUPPLY = 10**24;\n\n    constructor()\n        ERC20(NAME, SYMBOL)\n    {\n        _mint(\n            _msgSender(),\n            INITIAL_SUPPLY\n        );\n    }\n\n    function decimals() public pure override returns(uint8) {\n        return DECIMALS;\n    }\n}\n\n\ncontract USD3 is ERC20 {\n\n    // https://etherscan.io/address/0xdac17f958d2ee523a2206206994597c13d831ec7\n    string public constant NAME = \"Dummy USD - DUMMY\";\n    string public constant SYMBOL = \"DUSD\";\n    uint8 public constant DECIMALS = 13;\n\n    uint256 public constant INITIAL_SUPPLY = 10**24;\n\n    constructor()\n        ERC20(NAME, SYMBOL)\n    {\n        _mint(\n            _msgSender(),\n            INITIAL_SUPPLY\n        );\n    }\n\n    function decimals() public pure override returns(uint8) {\n        return DECIMALS;\n    }\n}\n\n\ncontract DIP is ERC20 {\n\n    // https://etherscan.io/token/0xc719d010b63e5bbf2c0551872cd5316ed26acd83#readContract\n    string public constant NAME = \"Decentralized Insurance Protocol - DUMMY\";\n    string public constant SYMBOL = \"DIP\";\n    uint8 public constant DECIMALS = 18;\n    uint256 public constant INITIAL_SUPPLY = 10**9 * 10**DECIMALS; // 1 Billion 1'000'000'000\n    // decimals == 18 (openzeppelin erc20 default)\n    constructor()\n        ERC20(NAME, SYMBOL)\n    {\n        _mint(\n            _msgSender(),\n            INITIAL_SUPPLY\n        );   \n    }\n\n    function decimals() public pure override returns(uint8) {\n        return DECIMALS;\n    }\n}\n",
  "sourceMap": "2609:657:66:-:0;;;3035:135;;;;;;;;;;3063:4;;;;;;;;;;;;;;;;;3069:6;;;;;;;;;;;;;-1:-1:-1;;;3069:6:66;;;2052:5:3;2044;:13;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2067:17:3;;;;:7;;:17;;;;;:::i;:::-;;1978:113;;3091:69:66::1;3110:12;:10;;;:12;;:::i;:::-;2939;2882:2;2939;:12;:::i;:::-;2931:20;::::0;:5:::1;:20;:::i;:::-;3091:5;:69::i;:::-;2609:657:::0;;640:96:11;719:10;640:96;:::o;8402:389:3:-;-1:-1:-1;;;;;8485:21:3;;8477:65;;;;-1:-1:-1;;;8477:65:3;;216:2:67;8477:65:3;;;198:21:67;255:2;235:18;;;228:30;294:33;274:18;;;267:61;345:18;;8477:65:3;;;;;;;;8629:6;8613:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8645:18:3;;:9;:18;;;;;;;;;;:28;;8667:6;;8645:9;:28;;8667:6;;8645:28;:::i;:::-;;;;-1:-1:-1;;8688:37:3;;520:25:67;;;-1:-1:-1;;;;;8688:37:3;;;8705:1;;8688:37;;508:2:67;493:18;8688:37:3;;;;;;;8402:389;;:::o;2609:657:66:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2609:657:66;;;-1:-1:-1;2609:657:66;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;556:128:67;;627:1;623:6;620:1;617:13;614:2;;;633:18;;:::i;:::-;-1:-1:-1;669:9:67;;604:80::o;689:453::-;785:6;808:5;822:314;871:1;908:2;898:8;895:16;885:2;;915:5;;;885:2;956:4;951:3;947:14;941:4;938:24;935:2;;;965:18;;:::i;:::-;1015:2;1005:8;1001:17;998:2;;;1030:16;;;;998:2;1109:17;;;;;1069:15;;822:314;;;766:376;;;;;;;:::o;1147:148::-;;1234:55;-1:-1:-1;;1275:4:67;1261:19;;1255:4;1234:55;:::i;:::-;1225:64;1215:80;-1:-1:-1;;;1215:80:67:o;1300:922::-;;1384:8;1374:2;;-1:-1:-1;1425:1:67;1439:5;;1374:2;1473:4;1463:2;;-1:-1:-1;1510:1:67;1524:5;;1463:2;1555:4;1573:1;1568:59;;;;1641:1;1636:183;;;;1548:271;;1568:59;1598:1;1589:10;;1612:5;;;1636:183;1673:3;1663:8;1660:17;1657:2;;;1680:18;;:::i;:::-;1736:1;1726:8;1722:16;1713:25;;1764:3;1757:5;1754:14;1751:2;;;1771:18;;:::i;:::-;1804:5;;;1548:271;;1903:2;1893:8;1890:16;1884:3;1878:4;1875:13;1871:36;1865:2;1855:8;1852:16;1847:2;1841:4;1838:12;1834:35;1831:77;1828:2;;;-1:-1:-1;1940:19:67;;;1975:14;;;1972:2;;;1992:18;;:::i;:::-;2025:5;;1828:2;2072:42;2110:3;2100:8;2094:4;2091:1;2072:42;:::i;:::-;2147:6;2142:3;2138:16;2129:7;2126:29;2123:2;;;2158:18;;:::i;:::-;2196:20;;1364:858;-1:-1:-1;;;;1364:858:67:o;2227:168::-;;2333:1;2329;2325:6;2321:14;2318:1;2315:21;2310:1;2303:9;2296:17;2292:45;2289:2;;;2340:18;;:::i;:::-;-1:-1:-1;2380:9:67;;2279:116::o;2400:380::-;2485:1;2475:12;;2532:1;2522:12;;;2543:2;;2597:4;2589:6;2585:17;2575:27;;2543:2;2650;2642:6;2639:14;2619:18;2616:38;2613:2;;;2696:10;2691:3;2687:20;2684:1;2677:31;2731:4;2728:1;2721:15;2759:4;2756:1;2749:15;2613:2;;2455:325;;;:::o;2785:127::-;2846:10;2841:3;2837:20;2834:1;2827:31;2877:4;2874:1;2867:15;2901:4;2898:1;2891:15;2817:95;2609:657:66;;;;;;",
  "sourcePath": "contracts/test/Tokens.sol",
  "type": "contract"
}