{
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "approved",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "ApprovalForAll",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getApproved",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "isApprovedForAll",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ownerOf",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "setApprovalForAll",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "tokenURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "allSourcePaths": {
    "72": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol",
    "78": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol",
    "79": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol",
    "80": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol",
    "81": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol",
    "82": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
    "83": "node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol",
    "86": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol",
    "87": "node_modules/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol",
    "88": "node_modules/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol"
  },
  "ast": {
    "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol",
    "exportedSymbols": {
      "AddressUpgradeable": [
        16246
      ],
      "ContextUpgradeable": [
        26020
      ],
      "ERC165Upgradeable": [
        26312
      ],
      "ERC721Upgradeable": [
        19013
      ],
      "IERC165Upgradeable": [
        27269
      ],
      "IERC721MetadataUpgradeable": [
        26065
      ],
      "IERC721ReceiverUpgradeable": [
        26038
      ],
      "IERC721Upgradeable": [
        22416
      ],
      "Initializable": [
        19544
      ],
      "StringsUpgradeable": [
        26268
      ]
    },
    "id": 19014,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 18124,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "107:23:78"
      },
      {
        "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol",
        "file": "./IERC721Upgradeable.sol",
        "id": 18125,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 19014,
        "sourceUnit": 22417,
        "src": "132:34:78",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol",
        "file": "./IERC721ReceiverUpgradeable.sol",
        "id": 18126,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 19014,
        "sourceUnit": 26039,
        "src": "167:42:78",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol",
        "file": "./extensions/IERC721MetadataUpgradeable.sol",
        "id": 18127,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 19014,
        "sourceUnit": 26066,
        "src": "210:53:78",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
        "file": "../../utils/AddressUpgradeable.sol",
        "id": 18128,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 19014,
        "sourceUnit": 16247,
        "src": "264:44:78",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol",
        "file": "../../utils/ContextUpgradeable.sol",
        "id": 18129,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 19014,
        "sourceUnit": 26021,
        "src": "309:44:78",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol",
        "file": "../../utils/StringsUpgradeable.sol",
        "id": 18130,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 19014,
        "sourceUnit": 26269,
        "src": "354:44:78",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol",
        "file": "../../utils/introspection/ERC165Upgradeable.sol",
        "id": 18131,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 19014,
        "sourceUnit": 26313,
        "src": "399:57:78",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol",
        "file": "../../proxy/utils/Initializable.sol",
        "id": 18132,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 19014,
        "sourceUnit": 19545,
        "src": "457:45:78",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 18134,
              "name": "Initializable",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 19544,
              "src": "781:13:78"
            },
            "id": 18135,
            "nodeType": "InheritanceSpecifier",
            "src": "781:13:78"
          },
          {
            "baseName": {
              "id": 18136,
              "name": "ContextUpgradeable",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 26020,
              "src": "796:18:78"
            },
            "id": 18137,
            "nodeType": "InheritanceSpecifier",
            "src": "796:18:78"
          },
          {
            "baseName": {
              "id": 18138,
              "name": "ERC165Upgradeable",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 26312,
              "src": "816:17:78"
            },
            "id": 18139,
            "nodeType": "InheritanceSpecifier",
            "src": "816:17:78"
          },
          {
            "baseName": {
              "id": 18140,
              "name": "IERC721Upgradeable",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 22416,
              "src": "835:18:78"
            },
            "id": 18141,
            "nodeType": "InheritanceSpecifier",
            "src": "835:18:78"
          },
          {
            "baseName": {
              "id": 18142,
              "name": "IERC721MetadataUpgradeable",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 26065,
              "src": "855:26:78"
            },
            "id": 18143,
            "nodeType": "InheritanceSpecifier",
            "src": "855:26:78"
          }
        ],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 18133,
          "nodeType": "StructuredDocumentation",
          "src": "504:246:78",
          "text": " @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}."
        },
        "fullyImplemented": true,
        "id": 19013,
        "linearizedBaseContracts": [
          19013,
          26065,
          22416,
          26312,
          27269,
          26020,
          19544
        ],
        "name": "ERC721Upgradeable",
        "nameLocation": "760:17:78",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 18146,
            "libraryName": {
              "id": 18144,
              "name": "AddressUpgradeable",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 16246,
              "src": "894:18:78"
            },
            "nodeType": "UsingForDirective",
            "src": "888:37:78",
            "typeName": {
              "id": 18145,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "917:7:78",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            }
          },
          {
            "id": 18149,
            "libraryName": {
              "id": 18147,
              "name": "StringsUpgradeable",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 26268,
              "src": "936:18:78"
            },
            "nodeType": "UsingForDirective",
            "src": "930:37:78",
            "typeName": {
              "id": 18148,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "959:7:78",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "constant": false,
            "id": 18151,
            "mutability": "mutable",
            "name": "_name",
            "nameLocation": "1006:5:78",
            "nodeType": "VariableDeclaration",
            "scope": 19013,
            "src": "991:20:78",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 18150,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "991:6:78",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 18153,
            "mutability": "mutable",
            "name": "_symbol",
            "nameLocation": "1053:7:78",
            "nodeType": "VariableDeclaration",
            "scope": 19013,
            "src": "1038:22:78",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 18152,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1038:6:78",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 18157,
            "mutability": "mutable",
            "name": "_owners",
            "nameLocation": "1149:7:78",
            "nodeType": "VariableDeclaration",
            "scope": 19013,
            "src": "1113:43:78",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
              "typeString": "mapping(uint256 => address)"
            },
            "typeName": {
              "id": 18156,
              "keyType": {
                "id": 18154,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1121:7:78",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1113:27:78",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                "typeString": "mapping(uint256 => address)"
              },
              "valueType": {
                "id": 18155,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "1132:7:78",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 18161,
            "mutability": "mutable",
            "name": "_balances",
            "nameLocation": "1243:9:78",
            "nodeType": "VariableDeclaration",
            "scope": 19013,
            "src": "1207:45:78",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 18160,
              "keyType": {
                "id": 18158,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "1215:7:78",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "1207:27:78",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 18159,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1226:7:78",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 18165,
            "mutability": "mutable",
            "name": "_tokenApprovals",
            "nameLocation": "1344:15:78",
            "nodeType": "VariableDeclaration",
            "scope": 19013,
            "src": "1308:51:78",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
              "typeString": "mapping(uint256 => address)"
            },
            "typeName": {
              "id": 18164,
              "keyType": {
                "id": 18162,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1316:7:78",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1308:27:78",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                "typeString": "mapping(uint256 => address)"
              },
              "valueType": {
                "id": 18163,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "1327:7:78",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 18171,
            "mutability": "mutable",
            "name": "_operatorApprovals",
            "nameLocation": "1467:18:78",
            "nodeType": "VariableDeclaration",
            "scope": 19013,
            "src": "1414:71:78",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$",
              "typeString": "mapping(address => mapping(address => bool))"
            },
            "typeName": {
              "id": 18170,
              "keyType": {
                "id": 18166,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "1422:7:78",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "1414:44:78",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$",
                "typeString": "mapping(address => mapping(address => bool))"
              },
              "valueType": {
                "id": 18169,
                "keyType": {
                  "id": 18167,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "1441:7:78",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "nodeType": "Mapping",
                "src": "1433:24:78",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                  "typeString": "mapping(address => bool)"
                },
                "valueType": {
                  "id": 18168,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "1452:4:78",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                }
              }
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 18186,
              "nodeType": "Block",
              "src": "1698:56:78",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 18182,
                        "name": "name_",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18174,
                        "src": "1732:5:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "id": 18183,
                        "name": "symbol_",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18176,
                        "src": "1739:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 18181,
                      "name": "__ERC721_init_unchained",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18205,
                      "src": "1708:23:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory)"
                      }
                    },
                    "id": 18184,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1708:39:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18185,
                  "nodeType": "ExpressionStatement",
                  "src": "1708:39:78"
                }
              ]
            },
            "documentation": {
              "id": 18172,
              "nodeType": "StructuredDocumentation",
              "src": "1492:108:78",
              "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection."
            },
            "id": 18187,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 18179,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 18178,
                  "name": "onlyInitializing",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 19528,
                  "src": "1681:16:78"
                },
                "nodeType": "ModifierInvocation",
                "src": "1681:16:78"
              }
            ],
            "name": "__ERC721_init",
            "nameLocation": "1614:13:78",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18177,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18174,
                  "mutability": "mutable",
                  "name": "name_",
                  "nameLocation": "1642:5:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18187,
                  "src": "1628:19:78",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 18173,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1628:6:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18176,
                  "mutability": "mutable",
                  "name": "symbol_",
                  "nameLocation": "1663:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18187,
                  "src": "1649:21:78",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 18175,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1649:6:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1627:44:78"
            },
            "returnParameters": {
              "id": 18180,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1698:0:78"
            },
            "scope": 19013,
            "src": "1605:149:78",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 18204,
              "nodeType": "Block",
              "src": "1863:57:78",
              "statements": [
                {
                  "expression": {
                    "id": 18198,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 18196,
                      "name": "_name",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18151,
                      "src": "1873:5:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 18197,
                      "name": "name_",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18189,
                      "src": "1881:5:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "1873:13:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 18199,
                  "nodeType": "ExpressionStatement",
                  "src": "1873:13:78"
                },
                {
                  "expression": {
                    "id": 18202,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 18200,
                      "name": "_symbol",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18153,
                      "src": "1896:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 18201,
                      "name": "symbol_",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18191,
                      "src": "1906:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "1896:17:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 18203,
                  "nodeType": "ExpressionStatement",
                  "src": "1896:17:78"
                }
              ]
            },
            "id": 18205,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 18194,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 18193,
                  "name": "onlyInitializing",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 19528,
                  "src": "1846:16:78"
                },
                "nodeType": "ModifierInvocation",
                "src": "1846:16:78"
              }
            ],
            "name": "__ERC721_init_unchained",
            "nameLocation": "1769:23:78",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18192,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18189,
                  "mutability": "mutable",
                  "name": "name_",
                  "nameLocation": "1807:5:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18205,
                  "src": "1793:19:78",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 18188,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1793:6:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18191,
                  "mutability": "mutable",
                  "name": "symbol_",
                  "nameLocation": "1828:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18205,
                  "src": "1814:21:78",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 18190,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1814:6:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1792:44:78"
            },
            "returnParameters": {
              "id": 18195,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1863:0:78"
            },
            "scope": 19013,
            "src": "1760:160:78",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              26306,
              27268
            ],
            "body": {
              "id": 18235,
              "nodeType": "Block",
              "src": "2117:214:78",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 18233,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 18228,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "commonType": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        },
                        "id": 18221,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 18216,
                          "name": "interfaceId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18208,
                          "src": "2146:11:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "arguments": [
                              {
                                "id": 18218,
                                "name": "IERC721Upgradeable",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22416,
                                "src": "2166:18:78",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IERC721Upgradeable_$22416_$",
                                  "typeString": "type(contract IERC721Upgradeable)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_type$_t_contract$_IERC721Upgradeable_$22416_$",
                                  "typeString": "type(contract IERC721Upgradeable)"
                                }
                              ],
                              "id": 18217,
                              "name": "type",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -27,
                              "src": "2161:4:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 18219,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2161:24:78",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_meta_type_t_contract$_IERC721Upgradeable_$22416",
                              "typeString": "type(contract IERC721Upgradeable)"
                            }
                          },
                          "id": 18220,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "interfaceId",
                          "nodeType": "MemberAccess",
                          "src": "2161:36:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "src": "2146:51:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "commonType": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        },
                        "id": 18227,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 18222,
                          "name": "interfaceId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18208,
                          "src": "2213:11:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "arguments": [
                              {
                                "id": 18224,
                                "name": "IERC721MetadataUpgradeable",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26065,
                                "src": "2233:26:78",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IERC721MetadataUpgradeable_$26065_$",
                                  "typeString": "type(contract IERC721MetadataUpgradeable)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_type$_t_contract$_IERC721MetadataUpgradeable_$26065_$",
                                  "typeString": "type(contract IERC721MetadataUpgradeable)"
                                }
                              ],
                              "id": 18223,
                              "name": "type",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -27,
                              "src": "2228:4:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 18225,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2228:32:78",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_meta_type_t_contract$_IERC721MetadataUpgradeable_$26065",
                              "typeString": "type(contract IERC721MetadataUpgradeable)"
                            }
                          },
                          "id": 18226,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "interfaceId",
                          "nodeType": "MemberAccess",
                          "src": "2228:44:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "src": "2213:59:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "2146:126:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 18231,
                          "name": "interfaceId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18208,
                          "src": "2312:11:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        ],
                        "expression": {
                          "id": 18229,
                          "name": "super",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -25,
                          "src": "2288:5:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_super$_ERC721Upgradeable_$19013_$",
                            "typeString": "type(contract super ERC721Upgradeable)"
                          }
                        },
                        "id": 18230,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "supportsInterface",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26306,
                        "src": "2288:23:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                          "typeString": "function (bytes4) view returns (bool)"
                        }
                      },
                      "id": 18232,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2288:36:78",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "2146:178:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 18215,
                  "id": 18234,
                  "nodeType": "Return",
                  "src": "2127:197:78"
                }
              ]
            },
            "documentation": {
              "id": 18206,
              "nodeType": "StructuredDocumentation",
              "src": "1926:56:78",
              "text": " @dev See {IERC165-supportsInterface}."
            },
            "functionSelector": "01ffc9a7",
            "id": 18236,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "supportsInterface",
            "nameLocation": "1996:17:78",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 18212,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 18210,
                  "name": "ERC165Upgradeable",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 26312,
                  "src": "2063:17:78"
                },
                {
                  "id": 18211,
                  "name": "IERC165Upgradeable",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 27269,
                  "src": "2082:18:78"
                }
              ],
              "src": "2054:47:78"
            },
            "parameters": {
              "id": 18209,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18208,
                  "mutability": "mutable",
                  "name": "interfaceId",
                  "nameLocation": "2021:11:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18236,
                  "src": "2014:18:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 18207,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "2014:6:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2013:20:78"
            },
            "returnParameters": {
              "id": 18215,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18214,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 18236,
                  "src": "2111:4:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 18213,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2111:4:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2110:6:78"
            },
            "scope": 19013,
            "src": "1987:344:78",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22341
            ],
            "body": {
              "id": 18259,
              "nodeType": "Block",
              "src": "2471:124:78",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 18251,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 18246,
                          "name": "owner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18239,
                          "src": "2489:5:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 18249,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2506:1:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 18248,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "2498:7:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 18247,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "2498:7:78",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 18250,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2498:10:78",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2489:19:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373",
                        "id": 18252,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2510:44:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba",
                          "typeString": "literal_string \"ERC721: balance query for the zero address\""
                        },
                        "value": "ERC721: balance query for the zero address"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba",
                          "typeString": "literal_string \"ERC721: balance query for the zero address\""
                        }
                      ],
                      "id": 18245,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "2481:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 18253,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2481:74:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18254,
                  "nodeType": "ExpressionStatement",
                  "src": "2481:74:78"
                },
                {
                  "expression": {
                    "baseExpression": {
                      "id": 18255,
                      "name": "_balances",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18161,
                      "src": "2572:9:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                        "typeString": "mapping(address => uint256)"
                      }
                    },
                    "id": 18257,
                    "indexExpression": {
                      "id": 18256,
                      "name": "owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18239,
                      "src": "2582:5:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2572:16:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 18244,
                  "id": 18258,
                  "nodeType": "Return",
                  "src": "2565:23:78"
                }
              ]
            },
            "documentation": {
              "id": 18237,
              "nodeType": "StructuredDocumentation",
              "src": "2337:48:78",
              "text": " @dev See {IERC721-balanceOf}."
            },
            "functionSelector": "70a08231",
            "id": 18260,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "balanceOf",
            "nameLocation": "2399:9:78",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 18241,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2444:8:78"
            },
            "parameters": {
              "id": 18240,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18239,
                  "mutability": "mutable",
                  "name": "owner",
                  "nameLocation": "2417:5:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18260,
                  "src": "2409:13:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18238,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2409:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2408:15:78"
            },
            "returnParameters": {
              "id": 18244,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18243,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 18260,
                  "src": "2462:7:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18242,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2462:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2461:9:78"
            },
            "scope": 19013,
            "src": "2390:205:78",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22349
            ],
            "body": {
              "id": 18287,
              "nodeType": "Block",
              "src": "2733:154:78",
              "statements": [
                {
                  "assignments": [
                    18270
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 18270,
                      "mutability": "mutable",
                      "name": "owner",
                      "nameLocation": "2751:5:78",
                      "nodeType": "VariableDeclaration",
                      "scope": 18287,
                      "src": "2743:13:78",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 18269,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2743:7:78",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 18274,
                  "initialValue": {
                    "baseExpression": {
                      "id": 18271,
                      "name": "_owners",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18157,
                      "src": "2759:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                        "typeString": "mapping(uint256 => address)"
                      }
                    },
                    "id": 18273,
                    "indexExpression": {
                      "id": 18272,
                      "name": "tokenId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18263,
                      "src": "2767:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2759:16:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2743:32:78"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 18281,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 18276,
                          "name": "owner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18270,
                          "src": "2793:5:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 18279,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2810:1:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 18278,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "2802:7:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 18277,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "2802:7:78",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 18280,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2802:10:78",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2793:19:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e",
                        "id": 18282,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2814:43:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397",
                          "typeString": "literal_string \"ERC721: owner query for nonexistent token\""
                        },
                        "value": "ERC721: owner query for nonexistent token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397",
                          "typeString": "literal_string \"ERC721: owner query for nonexistent token\""
                        }
                      ],
                      "id": 18275,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "2785:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 18283,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2785:73:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18284,
                  "nodeType": "ExpressionStatement",
                  "src": "2785:73:78"
                },
                {
                  "expression": {
                    "id": 18285,
                    "name": "owner",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 18270,
                    "src": "2875:5:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 18268,
                  "id": 18286,
                  "nodeType": "Return",
                  "src": "2868:12:78"
                }
              ]
            },
            "documentation": {
              "id": 18261,
              "nodeType": "StructuredDocumentation",
              "src": "2601:46:78",
              "text": " @dev See {IERC721-ownerOf}."
            },
            "functionSelector": "6352211e",
            "id": 18288,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "ownerOf",
            "nameLocation": "2661:7:78",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 18265,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2706:8:78"
            },
            "parameters": {
              "id": 18264,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18263,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "2677:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18288,
                  "src": "2669:15:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18262,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2669:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2668:17:78"
            },
            "returnParameters": {
              "id": 18268,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18267,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 18288,
                  "src": "2724:7:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18266,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2724:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2723:9:78"
            },
            "scope": 19013,
            "src": "2652:235:78",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              26050
            ],
            "body": {
              "id": 18297,
              "nodeType": "Block",
              "src": "3018:29:78",
              "statements": [
                {
                  "expression": {
                    "id": 18295,
                    "name": "_name",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 18151,
                    "src": "3035:5:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 18294,
                  "id": 18296,
                  "nodeType": "Return",
                  "src": "3028:12:78"
                }
              ]
            },
            "documentation": {
              "id": 18289,
              "nodeType": "StructuredDocumentation",
              "src": "2893:51:78",
              "text": " @dev See {IERC721Metadata-name}."
            },
            "functionSelector": "06fdde03",
            "id": 18298,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "name",
            "nameLocation": "2958:4:78",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 18291,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2985:8:78"
            },
            "parameters": {
              "id": 18290,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2962:2:78"
            },
            "returnParameters": {
              "id": 18294,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18293,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 18298,
                  "src": "3003:13:78",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 18292,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3003:6:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3002:15:78"
            },
            "scope": 19013,
            "src": "2949:98:78",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              26056
            ],
            "body": {
              "id": 18307,
              "nodeType": "Block",
              "src": "3182:31:78",
              "statements": [
                {
                  "expression": {
                    "id": 18305,
                    "name": "_symbol",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 18153,
                    "src": "3199:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 18304,
                  "id": 18306,
                  "nodeType": "Return",
                  "src": "3192:14:78"
                }
              ]
            },
            "documentation": {
              "id": 18299,
              "nodeType": "StructuredDocumentation",
              "src": "3053:53:78",
              "text": " @dev See {IERC721Metadata-symbol}."
            },
            "functionSelector": "95d89b41",
            "id": 18308,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "symbol",
            "nameLocation": "3120:6:78",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 18301,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3149:8:78"
            },
            "parameters": {
              "id": 18300,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3126:2:78"
            },
            "returnParameters": {
              "id": 18304,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18303,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 18308,
                  "src": "3167:13:78",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 18302,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3167:6:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3166:15:78"
            },
            "scope": 19013,
            "src": "3111:102:78",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              26064
            ],
            "body": {
              "id": 18349,
              "nodeType": "Block",
              "src": "3367:241:78",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 18319,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18311,
                            "src": "3393:7:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 18318,
                          "name": "_exists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18581,
                          "src": "3385:7:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 18320,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3385:16:78",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e",
                        "id": 18321,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3403:49:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb",
                          "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\""
                        },
                        "value": "ERC721Metadata: URI query for nonexistent token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb",
                          "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\""
                        }
                      ],
                      "id": 18317,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "3377:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 18322,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3377:76:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18323,
                  "nodeType": "ExpressionStatement",
                  "src": "3377:76:78"
                },
                {
                  "assignments": [
                    18325
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 18325,
                      "mutability": "mutable",
                      "name": "baseURI",
                      "nameLocation": "3478:7:78",
                      "nodeType": "VariableDeclaration",
                      "scope": 18349,
                      "src": "3464:21:78",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 18324,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "3464:6:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 18328,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 18326,
                      "name": "_baseURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18359,
                      "src": "3488:8:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$",
                        "typeString": "function () view returns (string memory)"
                      }
                    },
                    "id": 18327,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3488:10:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3464:34:78"
                },
                {
                  "expression": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 18335,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "arguments": [
                            {
                              "id": 18331,
                              "name": "baseURI",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 18325,
                              "src": "3521:7:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            ],
                            "id": 18330,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "3515:5:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                              "typeString": "type(bytes storage pointer)"
                            },
                            "typeName": {
                              "id": 18329,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "3515:5:78",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 18332,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3515:14:78",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "id": 18333,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "3515:21:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "hexValue": "30",
                        "id": 18334,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3539:1:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "3515:25:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "hexValue": "",
                      "id": 18346,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3599:2:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                        "typeString": "literal_string \"\""
                      },
                      "value": ""
                    },
                    "id": 18347,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "3515:86:78",
                    "trueExpression": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "id": 18340,
                              "name": "baseURI",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 18325,
                              "src": "3567:7:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "id": 18341,
                                  "name": "tokenId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 18311,
                                  "src": "3576:7:78",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 18342,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "toString",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 26150,
                                "src": "3576:16:78",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$",
                                  "typeString": "function (uint256) pure returns (string memory)"
                                }
                              },
                              "id": 18343,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3576:18:78",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              },
                              {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            ],
                            "expression": {
                              "id": 18338,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -1,
                              "src": "3550:3:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 18339,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "src": "3550:16:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 18344,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3550:45:78",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 18337,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "3543:6:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                          "typeString": "type(string storage pointer)"
                        },
                        "typeName": {
                          "id": 18336,
                          "name": "string",
                          "nodeType": "ElementaryTypeName",
                          "src": "3543:6:78",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 18345,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3543:53:78",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 18316,
                  "id": 18348,
                  "nodeType": "Return",
                  "src": "3508:93:78"
                }
              ]
            },
            "documentation": {
              "id": 18309,
              "nodeType": "StructuredDocumentation",
              "src": "3219:55:78",
              "text": " @dev See {IERC721Metadata-tokenURI}."
            },
            "functionSelector": "c87b56dd",
            "id": 18350,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "tokenURI",
            "nameLocation": "3288:8:78",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 18313,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3334:8:78"
            },
            "parameters": {
              "id": 18312,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18311,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "3305:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18350,
                  "src": "3297:15:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18310,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3297:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3296:17:78"
            },
            "returnParameters": {
              "id": 18316,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18315,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 18350,
                  "src": "3352:13:78",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 18314,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3352:6:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3351:15:78"
            },
            "scope": 19013,
            "src": "3279:329:78",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 18358,
              "nodeType": "Block",
              "src": "3915:26:78",
              "statements": [
                {
                  "expression": {
                    "hexValue": "",
                    "id": 18356,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "string",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "3932:2:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                      "typeString": "literal_string \"\""
                    },
                    "value": ""
                  },
                  "functionReturnParameters": 18355,
                  "id": 18357,
                  "nodeType": "Return",
                  "src": "3925:9:78"
                }
              ]
            },
            "documentation": {
              "id": 18351,
              "nodeType": "StructuredDocumentation",
              "src": "3614:230:78",
              "text": " @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overriden in child contracts."
            },
            "id": 18359,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_baseURI",
            "nameLocation": "3858:8:78",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18352,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3866:2:78"
            },
            "returnParameters": {
              "id": 18355,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18354,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 18359,
                  "src": "3900:13:78",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 18353,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3900:6:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3899:15:78"
            },
            "scope": 19013,
            "src": "3849:92:78",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              22377
            ],
            "body": {
              "id": 18401,
              "nodeType": "Block",
              "src": "4068:342:78",
              "statements": [
                {
                  "assignments": [
                    18369
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 18369,
                      "mutability": "mutable",
                      "name": "owner",
                      "nameLocation": "4086:5:78",
                      "nodeType": "VariableDeclaration",
                      "scope": 18401,
                      "src": "4078:13:78",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 18368,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "4078:7:78",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 18374,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 18372,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18364,
                        "src": "4120:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 18370,
                        "name": "ERC721Upgradeable",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19013,
                        "src": "4094:17:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_ERC721Upgradeable_$19013_$",
                          "typeString": "type(contract ERC721Upgradeable)"
                        }
                      },
                      "id": 18371,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "ownerOf",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18288,
                      "src": "4094:25:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                        "typeString": "function (uint256) view returns (address)"
                      }
                    },
                    "id": 18373,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4094:34:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4078:50:78"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 18378,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 18376,
                          "name": "to",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18362,
                          "src": "4146:2:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "id": 18377,
                          "name": "owner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18369,
                          "src": "4152:5:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "4146:11:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572",
                        "id": 18379,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4159:35:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942",
                          "typeString": "literal_string \"ERC721: approval to current owner\""
                        },
                        "value": "ERC721: approval to current owner"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942",
                          "typeString": "literal_string \"ERC721: approval to current owner\""
                        }
                      ],
                      "id": 18375,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "4138:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 18380,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4138:57:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18381,
                  "nodeType": "ExpressionStatement",
                  "src": "4138:57:78"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 18392,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 18386,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 18383,
                              "name": "_msgSender",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26005,
                              "src": "4227:10:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                                "typeString": "function () view returns (address)"
                              }
                            },
                            "id": 18384,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4227:12:78",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "id": 18385,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18369,
                            "src": "4243:5:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "4227:21:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 18388,
                              "name": "owner",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 18369,
                              "src": "4269:5:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 18389,
                                "name": "_msgSender",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26005,
                                "src": "4276:10:78",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                                  "typeString": "function () view returns (address)"
                                }
                              },
                              "id": 18390,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4276:12:78",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 18387,
                            "name": "isApprovedForAll",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18458,
                            "src": "4252:16:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$",
                              "typeString": "function (address,address) view returns (bool)"
                            }
                          },
                          "id": 18391,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4252:37:78",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4227:62:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c",
                        "id": 18393,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4303:58:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d",
                          "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\""
                        },
                        "value": "ERC721: approve caller is not owner nor approved for all"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d",
                          "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\""
                        }
                      ],
                      "id": 18382,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "4206:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 18394,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4206:165:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18395,
                  "nodeType": "ExpressionStatement",
                  "src": "4206:165:78"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 18397,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18362,
                        "src": "4391:2:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18398,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18364,
                        "src": "4395:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 18396,
                      "name": "_approve",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18891,
                      "src": "4382:8:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 18399,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4382:21:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18400,
                  "nodeType": "ExpressionStatement",
                  "src": "4382:21:78"
                }
              ]
            },
            "documentation": {
              "id": 18360,
              "nodeType": "StructuredDocumentation",
              "src": "3947:46:78",
              "text": " @dev See {IERC721-approve}."
            },
            "functionSelector": "095ea7b3",
            "id": 18402,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "approve",
            "nameLocation": "4007:7:78",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 18366,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4059:8:78"
            },
            "parameters": {
              "id": 18365,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18362,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "4023:2:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18402,
                  "src": "4015:10:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18361,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4015:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18364,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "4035:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18402,
                  "src": "4027:15:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18363,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4027:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4014:29:78"
            },
            "returnParameters": {
              "id": 18367,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4068:0:78"
            },
            "scope": 19013,
            "src": "3998:412:78",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22385
            ],
            "body": {
              "id": 18422,
              "nodeType": "Block",
              "src": "4556:132:78",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 18413,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18405,
                            "src": "4582:7:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 18412,
                          "name": "_exists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18581,
                          "src": "4574:7:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 18414,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4574:16:78",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e",
                        "id": 18415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4592:46:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d",
                          "typeString": "literal_string \"ERC721: approved query for nonexistent token\""
                        },
                        "value": "ERC721: approved query for nonexistent token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d",
                          "typeString": "literal_string \"ERC721: approved query for nonexistent token\""
                        }
                      ],
                      "id": 18411,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "4566:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 18416,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4566:73:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18417,
                  "nodeType": "ExpressionStatement",
                  "src": "4566:73:78"
                },
                {
                  "expression": {
                    "baseExpression": {
                      "id": 18418,
                      "name": "_tokenApprovals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18165,
                      "src": "4657:15:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                        "typeString": "mapping(uint256 => address)"
                      }
                    },
                    "id": 18420,
                    "indexExpression": {
                      "id": 18419,
                      "name": "tokenId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18405,
                      "src": "4673:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4657:24:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 18410,
                  "id": 18421,
                  "nodeType": "Return",
                  "src": "4650:31:78"
                }
              ]
            },
            "documentation": {
              "id": 18403,
              "nodeType": "StructuredDocumentation",
              "src": "4416:50:78",
              "text": " @dev See {IERC721-getApproved}."
            },
            "functionSelector": "081812fc",
            "id": 18423,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getApproved",
            "nameLocation": "4480:11:78",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 18407,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4529:8:78"
            },
            "parameters": {
              "id": 18406,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18405,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "4500:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18423,
                  "src": "4492:15:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18404,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4492:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4491:17:78"
            },
            "returnParameters": {
              "id": 18410,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18409,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 18423,
                  "src": "4547:7:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18408,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4547:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4546:9:78"
            },
            "scope": 19013,
            "src": "4471:217:78",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22393
            ],
            "body": {
              "id": 18439,
              "nodeType": "Block",
              "src": "4839:69:78",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 18433,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26005,
                          "src": "4868:10:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                            "typeString": "function () view returns (address)"
                          }
                        },
                        "id": 18434,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4868:12:78",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18435,
                        "name": "operator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18426,
                        "src": "4882:8:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18436,
                        "name": "approved",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18428,
                        "src": "4892:8:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 18432,
                      "name": "_setApprovalForAll",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18923,
                      "src": "4849:18:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$",
                        "typeString": "function (address,address,bool)"
                      }
                    },
                    "id": 18437,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4849:52:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18438,
                  "nodeType": "ExpressionStatement",
                  "src": "4849:52:78"
                }
              ]
            },
            "documentation": {
              "id": 18424,
              "nodeType": "StructuredDocumentation",
              "src": "4694:56:78",
              "text": " @dev See {IERC721-setApprovalForAll}."
            },
            "functionSelector": "a22cb465",
            "id": 18440,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setApprovalForAll",
            "nameLocation": "4764:17:78",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 18430,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4830:8:78"
            },
            "parameters": {
              "id": 18429,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18426,
                  "mutability": "mutable",
                  "name": "operator",
                  "nameLocation": "4790:8:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18440,
                  "src": "4782:16:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18425,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4782:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18428,
                  "mutability": "mutable",
                  "name": "approved",
                  "nameLocation": "4805:8:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18440,
                  "src": "4800:13:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 18427,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4800:4:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4781:33:78"
            },
            "returnParameters": {
              "id": 18431,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4839:0:78"
            },
            "scope": 19013,
            "src": "4755:153:78",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22403
            ],
            "body": {
              "id": 18457,
              "nodeType": "Block",
              "src": "5077:59:78",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "baseExpression": {
                        "id": 18451,
                        "name": "_operatorApprovals",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18171,
                        "src": "5094:18:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$",
                          "typeString": "mapping(address => mapping(address => bool))"
                        }
                      },
                      "id": 18453,
                      "indexExpression": {
                        "id": 18452,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18443,
                        "src": "5113:5:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "5094:25:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                        "typeString": "mapping(address => bool)"
                      }
                    },
                    "id": 18455,
                    "indexExpression": {
                      "id": 18454,
                      "name": "operator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18445,
                      "src": "5120:8:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5094:35:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 18450,
                  "id": 18456,
                  "nodeType": "Return",
                  "src": "5087:42:78"
                }
              ]
            },
            "documentation": {
              "id": 18441,
              "nodeType": "StructuredDocumentation",
              "src": "4914:55:78",
              "text": " @dev See {IERC721-isApprovedForAll}."
            },
            "functionSelector": "e985e9c5",
            "id": 18458,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isApprovedForAll",
            "nameLocation": "4983:16:78",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 18447,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5053:8:78"
            },
            "parameters": {
              "id": 18446,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18443,
                  "mutability": "mutable",
                  "name": "owner",
                  "nameLocation": "5008:5:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18458,
                  "src": "5000:13:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18442,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5000:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18445,
                  "mutability": "mutable",
                  "name": "operator",
                  "nameLocation": "5023:8:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18458,
                  "src": "5015:16:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18444,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5015:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4999:33:78"
            },
            "returnParameters": {
              "id": 18450,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18449,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 18458,
                  "src": "5071:4:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 18448,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5071:4:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5070:6:78"
            },
            "scope": 19013,
            "src": "4974:162:78",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22369
            ],
            "body": {
              "id": 18484,
              "nodeType": "Block",
              "src": "5317:211:78",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 18471,
                              "name": "_msgSender",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26005,
                              "src": "5406:10:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                                "typeString": "function () view returns (address)"
                              }
                            },
                            "id": 18472,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5406:12:78",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 18473,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18465,
                            "src": "5420:7:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 18470,
                          "name": "_isApprovedOrOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18622,
                          "src": "5387:18:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,uint256) view returns (bool)"
                          }
                        },
                        "id": 18474,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5387:41:78",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564",
                        "id": 18475,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5430:51:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2",
                          "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\""
                        },
                        "value": "ERC721: transfer caller is not owner nor approved"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2",
                          "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\""
                        }
                      ],
                      "id": 18469,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "5379:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 18476,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5379:103:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18477,
                  "nodeType": "ExpressionStatement",
                  "src": "5379:103:78"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 18479,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18461,
                        "src": "5503:4:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18480,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18463,
                        "src": "5509:2:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18481,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18465,
                        "src": "5513:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 18478,
                      "name": "_transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18867,
                      "src": "5493:9:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 18482,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5493:28:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18483,
                  "nodeType": "ExpressionStatement",
                  "src": "5493:28:78"
                }
              ]
            },
            "documentation": {
              "id": 18459,
              "nodeType": "StructuredDocumentation",
              "src": "5142:51:78",
              "text": " @dev See {IERC721-transferFrom}."
            },
            "functionSelector": "23b872dd",
            "id": 18485,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "transferFrom",
            "nameLocation": "5207:12:78",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 18467,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5308:8:78"
            },
            "parameters": {
              "id": 18466,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18461,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "5237:4:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18485,
                  "src": "5229:12:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18460,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5229:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18463,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "5259:2:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18485,
                  "src": "5251:10:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18462,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5251:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18465,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "5279:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18485,
                  "src": "5271:15:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18464,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5271:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5219:73:78"
            },
            "returnParameters": {
              "id": 18468,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5317:0:78"
            },
            "scope": 19013,
            "src": "5198:330:78",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22359
            ],
            "body": {
              "id": 18503,
              "nodeType": "Block",
              "src": "5717:56:78",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 18497,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18488,
                        "src": "5744:4:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18498,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18490,
                        "src": "5750:2:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18499,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18492,
                        "src": "5754:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "hexValue": "",
                        "id": 18500,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5763:2:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        }
                      ],
                      "id": 18496,
                      "name": "safeTransferFrom",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        18504,
                        18534
                      ],
                      "referencedDeclaration": 18534,
                      "src": "5727:16:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,address,uint256,bytes memory)"
                      }
                    },
                    "id": 18501,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5727:39:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18502,
                  "nodeType": "ExpressionStatement",
                  "src": "5727:39:78"
                }
              ]
            },
            "documentation": {
              "id": 18486,
              "nodeType": "StructuredDocumentation",
              "src": "5534:55:78",
              "text": " @dev See {IERC721-safeTransferFrom}."
            },
            "functionSelector": "42842e0e",
            "id": 18504,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "safeTransferFrom",
            "nameLocation": "5603:16:78",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 18494,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5708:8:78"
            },
            "parameters": {
              "id": 18493,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18488,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "5637:4:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18504,
                  "src": "5629:12:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18487,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5629:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18490,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "5659:2:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18504,
                  "src": "5651:10:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18489,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5651:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18492,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "5679:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18504,
                  "src": "5671:15:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18491,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5671:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5619:73:78"
            },
            "returnParameters": {
              "id": 18495,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5717:0:78"
            },
            "scope": 19013,
            "src": "5594:179:78",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22415
            ],
            "body": {
              "id": 18533,
              "nodeType": "Block",
              "src": "5990:169:78",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 18519,
                              "name": "_msgSender",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26005,
                              "src": "6027:10:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                                "typeString": "function () view returns (address)"
                              }
                            },
                            "id": 18520,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6027:12:78",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 18521,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18511,
                            "src": "6041:7:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 18518,
                          "name": "_isApprovedOrOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18622,
                          "src": "6008:18:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,uint256) view returns (bool)"
                          }
                        },
                        "id": 18522,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6008:41:78",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564",
                        "id": 18523,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6051:51:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2",
                          "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\""
                        },
                        "value": "ERC721: transfer caller is not owner nor approved"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2",
                          "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\""
                        }
                      ],
                      "id": 18517,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "6000:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 18524,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6000:103:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18525,
                  "nodeType": "ExpressionStatement",
                  "src": "6000:103:78"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 18527,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18507,
                        "src": "6127:4:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18528,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18509,
                        "src": "6133:2:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18529,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18511,
                        "src": "6137:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 18530,
                        "name": "_data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18513,
                        "src": "6146:5:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 18526,
                      "name": "_safeTransfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18563,
                      "src": "6113:13:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,address,uint256,bytes memory)"
                      }
                    },
                    "id": 18531,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6113:39:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18532,
                  "nodeType": "ExpressionStatement",
                  "src": "6113:39:78"
                }
              ]
            },
            "documentation": {
              "id": 18505,
              "nodeType": "StructuredDocumentation",
              "src": "5779:55:78",
              "text": " @dev See {IERC721-safeTransferFrom}."
            },
            "functionSelector": "b88d4fde",
            "id": 18534,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "safeTransferFrom",
            "nameLocation": "5848:16:78",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 18515,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5981:8:78"
            },
            "parameters": {
              "id": 18514,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18507,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "5882:4:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18534,
                  "src": "5874:12:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18506,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5874:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18509,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "5904:2:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18534,
                  "src": "5896:10:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18508,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5896:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18511,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "5924:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18534,
                  "src": "5916:15:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18510,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5916:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18513,
                  "mutability": "mutable",
                  "name": "_data",
                  "nameLocation": "5954:5:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18534,
                  "src": "5941:18:78",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 18512,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5941:5:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5864:101:78"
            },
            "returnParameters": {
              "id": 18516,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5990:0:78"
            },
            "scope": 19013,
            "src": "5839:320:78",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 18562,
              "nodeType": "Block",
              "src": "7162:166:78",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 18547,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18537,
                        "src": "7182:4:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18548,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18539,
                        "src": "7188:2:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18549,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18541,
                        "src": "7192:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 18546,
                      "name": "_transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18867,
                      "src": "7172:9:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 18550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7172:28:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18551,
                  "nodeType": "ExpressionStatement",
                  "src": "7172:28:78"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 18554,
                            "name": "from",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18537,
                            "src": "7241:4:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 18555,
                            "name": "to",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18539,
                            "src": "7247:2:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 18556,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18541,
                            "src": "7251:7:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "id": 18557,
                            "name": "_data",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18543,
                            "src": "7260:5:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 18553,
                          "name": "_checkOnERC721Received",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18985,
                          "src": "7218:22:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (address,address,uint256,bytes memory) returns (bool)"
                          }
                        },
                        "id": 18558,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7218:48:78",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572",
                        "id": 18559,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7268:52:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e",
                          "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\""
                        },
                        "value": "ERC721: transfer to non ERC721Receiver implementer"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e",
                          "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\""
                        }
                      ],
                      "id": 18552,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "7210:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 18560,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7210:111:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18561,
                  "nodeType": "ExpressionStatement",
                  "src": "7210:111:78"
                }
              ]
            },
            "documentation": {
              "id": 18535,
              "nodeType": "StructuredDocumentation",
              "src": "6165:851:78",
              "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."
            },
            "id": 18563,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_safeTransfer",
            "nameLocation": "7030:13:78",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18544,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18537,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "7061:4:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18563,
                  "src": "7053:12:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18536,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7053:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18539,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "7083:2:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18563,
                  "src": "7075:10:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18538,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7075:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18541,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "7103:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18563,
                  "src": "7095:15:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18540,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7095:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18543,
                  "mutability": "mutable",
                  "name": "_data",
                  "nameLocation": "7133:5:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18563,
                  "src": "7120:18:78",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 18542,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "7120:5:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7043:101:78"
            },
            "returnParameters": {
              "id": 18545,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7162:0:78"
            },
            "scope": 19013,
            "src": "7021:307:78",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 18580,
              "nodeType": "Block",
              "src": "7702:54:78",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 18578,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "baseExpression": {
                        "id": 18571,
                        "name": "_owners",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18157,
                        "src": "7719:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                          "typeString": "mapping(uint256 => address)"
                        }
                      },
                      "id": 18573,
                      "indexExpression": {
                        "id": 18572,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18566,
                        "src": "7727:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "7719:16:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "arguments": [
                        {
                          "hexValue": "30",
                          "id": 18576,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7747:1:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 18575,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "7739:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 18574,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "7739:7:78",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 18577,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7739:10:78",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "7719:30:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 18570,
                  "id": 18579,
                  "nodeType": "Return",
                  "src": "7712:37:78"
                }
              ]
            },
            "documentation": {
              "id": 18564,
              "nodeType": "StructuredDocumentation",
              "src": "7334:292:78",
              "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)."
            },
            "id": 18581,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_exists",
            "nameLocation": "7640:7:78",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18567,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18566,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "7656:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18581,
                  "src": "7648:15:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18565,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7648:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7647:17:78"
            },
            "returnParameters": {
              "id": 18570,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18569,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 18581,
                  "src": "7696:4:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 18568,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7696:4:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7695:6:78"
            },
            "scope": 19013,
            "src": "7631:125:78",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 18621,
              "nodeType": "Block",
              "src": "8013:256:78",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 18593,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18586,
                            "src": "8039:7:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 18592,
                          "name": "_exists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18581,
                          "src": "8031:7:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 18594,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8031:16:78",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e",
                        "id": 18595,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8049:46:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c",
                          "typeString": "literal_string \"ERC721: operator query for nonexistent token\""
                        },
                        "value": "ERC721: operator query for nonexistent token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c",
                          "typeString": "literal_string \"ERC721: operator query for nonexistent token\""
                        }
                      ],
                      "id": 18591,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "8023:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 18596,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8023:73:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18597,
                  "nodeType": "ExpressionStatement",
                  "src": "8023:73:78"
                },
                {
                  "assignments": [
                    18599
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 18599,
                      "mutability": "mutable",
                      "name": "owner",
                      "nameLocation": "8114:5:78",
                      "nodeType": "VariableDeclaration",
                      "scope": 18621,
                      "src": "8106:13:78",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 18598,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "8106:7:78",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 18604,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 18602,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18586,
                        "src": "8148:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 18600,
                        "name": "ERC721Upgradeable",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19013,
                        "src": "8122:17:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_ERC721Upgradeable_$19013_$",
                          "typeString": "type(contract ERC721Upgradeable)"
                        }
                      },
                      "id": 18601,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "ownerOf",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18288,
                      "src": "8122:25:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                        "typeString": "function (uint256) view returns (address)"
                      }
                    },
                    "id": 18603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8122:34:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8106:50:78"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 18618,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 18613,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 18607,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 18605,
                              "name": "spender",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 18584,
                              "src": "8174:7:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "id": 18606,
                              "name": "owner",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 18599,
                              "src": "8185:5:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "8174:16:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "||",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 18612,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "arguments": [
                                {
                                  "id": 18609,
                                  "name": "tokenId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 18586,
                                  "src": "8206:7:78",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 18608,
                                "name": "getApproved",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 18423,
                                "src": "8194:11:78",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                                  "typeString": "function (uint256) view returns (address)"
                                }
                              },
                              "id": 18610,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "8194:20:78",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "id": 18611,
                              "name": "spender",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 18584,
                              "src": "8218:7:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "8194:31:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "8174:51:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 18615,
                              "name": "owner",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 18599,
                              "src": "8246:5:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "id": 18616,
                              "name": "spender",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 18584,
                              "src": "8253:7:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 18614,
                            "name": "isApprovedForAll",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18458,
                            "src": "8229:16:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$",
                              "typeString": "function (address,address) view returns (bool)"
                            }
                          },
                          "id": 18617,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8229:32:78",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8174:87:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 18619,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "8173:89:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 18590,
                  "id": 18620,
                  "nodeType": "Return",
                  "src": "8166:96:78"
                }
              ]
            },
            "documentation": {
              "id": 18582,
              "nodeType": "StructuredDocumentation",
              "src": "7762:147:78",
              "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist."
            },
            "id": 18622,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_isApprovedOrOwner",
            "nameLocation": "7923:18:78",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18587,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18584,
                  "mutability": "mutable",
                  "name": "spender",
                  "nameLocation": "7950:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18622,
                  "src": "7942:15:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18583,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7942:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18586,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "7967:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18622,
                  "src": "7959:15:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18585,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7959:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7941:34:78"
            },
            "returnParameters": {
              "id": 18590,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18589,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 18622,
                  "src": "8007:4:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 18588,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8007:4:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8006:6:78"
            },
            "scope": 19013,
            "src": "7914:355:78",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 18636,
              "nodeType": "Block",
              "src": "8664:43:78",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 18631,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18625,
                        "src": "8684:2:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18632,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18627,
                        "src": "8688:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "hexValue": "",
                        "id": 18633,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8697:2:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        }
                      ],
                      "id": 18630,
                      "name": "_safeMint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        18637,
                        18666
                      ],
                      "referencedDeclaration": 18666,
                      "src": "8674:9:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,uint256,bytes memory)"
                      }
                    },
                    "id": 18634,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8674:26:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18635,
                  "nodeType": "ExpressionStatement",
                  "src": "8674:26:78"
                }
              ]
            },
            "documentation": {
              "id": 18623,
              "nodeType": "StructuredDocumentation",
              "src": "8275:319:78",
              "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."
            },
            "id": 18637,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_safeMint",
            "nameLocation": "8608:9:78",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18628,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18625,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "8626:2:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18637,
                  "src": "8618:10:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18624,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8618:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18627,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "8638:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18637,
                  "src": "8630:15:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18626,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8630:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8617:29:78"
            },
            "returnParameters": {
              "id": 18629,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8664:0:78"
            },
            "scope": 19013,
            "src": "8599:108:78",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 18665,
              "nodeType": "Block",
              "src": "9043:196:78",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 18648,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18640,
                        "src": "9059:2:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18649,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18642,
                        "src": "9063:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 18647,
                      "name": "_mint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18732,
                      "src": "9053:5:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 18650,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9053:18:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18651,
                  "nodeType": "ExpressionStatement",
                  "src": "9053:18:78"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 18656,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9133:1:78",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 18655,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9125:7:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 18654,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "9125:7:78",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 18657,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9125:10:78",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 18658,
                            "name": "to",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18640,
                            "src": "9137:2:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 18659,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18642,
                            "src": "9141:7:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "id": 18660,
                            "name": "_data",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18644,
                            "src": "9150:5:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 18653,
                          "name": "_checkOnERC721Received",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18985,
                          "src": "9102:22:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (address,address,uint256,bytes memory) returns (bool)"
                          }
                        },
                        "id": 18661,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9102:54:78",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572",
                        "id": 18662,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9170:52:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e",
                          "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\""
                        },
                        "value": "ERC721: transfer to non ERC721Receiver implementer"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e",
                          "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\""
                        }
                      ],
                      "id": 18652,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "9081:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 18663,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9081:151:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18664,
                  "nodeType": "ExpressionStatement",
                  "src": "9081:151:78"
                }
              ]
            },
            "documentation": {
              "id": 18638,
              "nodeType": "StructuredDocumentation",
              "src": "8713:210:78",
              "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."
            },
            "id": 18666,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_safeMint",
            "nameLocation": "8937:9:78",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18645,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18640,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "8964:2:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18666,
                  "src": "8956:10:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18639,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8956:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18642,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "8984:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18666,
                  "src": "8976:15:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18641,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8976:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18644,
                  "mutability": "mutable",
                  "name": "_data",
                  "nameLocation": "9014:5:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18666,
                  "src": "9001:18:78",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 18643,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "9001:5:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8946:79:78"
            },
            "returnParameters": {
              "id": 18646,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9043:0:78"
            },
            "scope": 19013,
            "src": "8928:311:78",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 18731,
              "nodeType": "Block",
              "src": "9622:366:78",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 18680,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 18675,
                          "name": "to",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18669,
                          "src": "9640:2:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 18678,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9654:1:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 18677,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "9646:7:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 18676,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "9646:7:78",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 18679,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9646:10:78",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "9640:16:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373",
                        "id": 18681,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9658:34:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6",
                          "typeString": "literal_string \"ERC721: mint to the zero address\""
                        },
                        "value": "ERC721: mint to the zero address"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6",
                          "typeString": "literal_string \"ERC721: mint to the zero address\""
                        }
                      ],
                      "id": 18674,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "9632:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 18682,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9632:61:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18683,
                  "nodeType": "ExpressionStatement",
                  "src": "9632:61:78"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 18688,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "9711:17:78",
                        "subExpression": {
                          "arguments": [
                            {
                              "id": 18686,
                              "name": "tokenId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 18671,
                              "src": "9720:7:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 18685,
                            "name": "_exists",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18581,
                            "src": "9712:7:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (uint256) view returns (bool)"
                            }
                          },
                          "id": 18687,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9712:16:78",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564",
                        "id": 18689,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9730:30:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57",
                          "typeString": "literal_string \"ERC721: token already minted\""
                        },
                        "value": "ERC721: token already minted"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57",
                          "typeString": "literal_string \"ERC721: token already minted\""
                        }
                      ],
                      "id": 18684,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "9703:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 18690,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9703:58:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18691,
                  "nodeType": "ExpressionStatement",
                  "src": "9703:58:78"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 18695,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9801:1:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 18694,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "9793:7:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 18693,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "9793:7:78",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 18696,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9793:10:78",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18697,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18669,
                        "src": "9805:2:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18698,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18671,
                        "src": "9809:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 18692,
                      "name": "_beforeTokenTransfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18996,
                      "src": "9772:20:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 18699,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9772:45:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18700,
                  "nodeType": "ExpressionStatement",
                  "src": "9772:45:78"
                },
                {
                  "expression": {
                    "id": 18705,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 18701,
                        "name": "_balances",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18161,
                        "src": "9828:9:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 18703,
                      "indexExpression": {
                        "id": 18702,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18669,
                        "src": "9838:2:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "9828:13:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "hexValue": "31",
                      "id": 18704,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9845:1:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "9828:18:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 18706,
                  "nodeType": "ExpressionStatement",
                  "src": "9828:18:78"
                },
                {
                  "expression": {
                    "id": 18711,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 18707,
                        "name": "_owners",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18157,
                        "src": "9856:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                          "typeString": "mapping(uint256 => address)"
                        }
                      },
                      "id": 18709,
                      "indexExpression": {
                        "id": 18708,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18671,
                        "src": "9864:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "9856:16:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 18710,
                      "name": "to",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18669,
                      "src": "9875:2:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "9856:21:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 18712,
                  "nodeType": "ExpressionStatement",
                  "src": "9856:21:78"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 18716,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9910:1:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 18715,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "9902:7:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 18714,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "9902:7:78",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 18717,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9902:10:78",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18718,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18669,
                        "src": "9914:2:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18719,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18671,
                        "src": "9918:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 18713,
                      "name": "Transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22315,
                      "src": "9893:8:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 18720,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9893:33:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18721,
                  "nodeType": "EmitStatement",
                  "src": "9888:38:78"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 18725,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9965:1:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 18724,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "9957:7:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 18723,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "9957:7:78",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 18726,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9957:10:78",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18727,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18669,
                        "src": "9969:2:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18728,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18671,
                        "src": "9973:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 18722,
                      "name": "_afterTokenTransfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19007,
                      "src": "9937:19:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 18729,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9937:44:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18730,
                  "nodeType": "ExpressionStatement",
                  "src": "9937:44:78"
                }
              ]
            },
            "documentation": {
              "id": 18667,
              "nodeType": "StructuredDocumentation",
              "src": "9245:311:78",
              "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."
            },
            "id": 18732,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_mint",
            "nameLocation": "9570:5:78",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18672,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18669,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "9584:2:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18732,
                  "src": "9576:10:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18668,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9576:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18671,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "9596:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18732,
                  "src": "9588:15:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18670,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9588:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9575:29:78"
            },
            "returnParameters": {
              "id": 18673,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9622:0:78"
            },
            "scope": 19013,
            "src": "9561:427:78",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 18791,
              "nodeType": "Block",
              "src": "10254:368:78",
              "statements": [
                {
                  "assignments": [
                    18739
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 18739,
                      "mutability": "mutable",
                      "name": "owner",
                      "nameLocation": "10272:5:78",
                      "nodeType": "VariableDeclaration",
                      "scope": 18791,
                      "src": "10264:13:78",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 18738,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "10264:7:78",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 18744,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 18742,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18735,
                        "src": "10306:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 18740,
                        "name": "ERC721Upgradeable",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19013,
                        "src": "10280:17:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_ERC721Upgradeable_$19013_$",
                          "typeString": "type(contract ERC721Upgradeable)"
                        }
                      },
                      "id": 18741,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "ownerOf",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18288,
                      "src": "10280:25:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                        "typeString": "function (uint256) view returns (address)"
                      }
                    },
                    "id": 18743,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10280:34:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10264:50:78"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 18746,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18739,
                        "src": "10346:5:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 18749,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "10361:1:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 18748,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "10353:7:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 18747,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "10353:7:78",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 18750,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10353:10:78",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18751,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18735,
                        "src": "10365:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 18745,
                      "name": "_beforeTokenTransfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18996,
                      "src": "10325:20:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 18752,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10325:48:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18753,
                  "nodeType": "ExpressionStatement",
                  "src": "10325:48:78"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 18757,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "10428:1:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 18756,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "10420:7:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 18755,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "10420:7:78",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 18758,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10420:10:78",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18759,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18735,
                        "src": "10432:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 18754,
                      "name": "_approve",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18891,
                      "src": "10411:8:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 18760,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10411:29:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18761,
                  "nodeType": "ExpressionStatement",
                  "src": "10411:29:78"
                },
                {
                  "expression": {
                    "id": 18766,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 18762,
                        "name": "_balances",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18161,
                        "src": "10451:9:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 18764,
                      "indexExpression": {
                        "id": 18763,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18739,
                        "src": "10461:5:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "10451:16:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "-=",
                    "rightHandSide": {
                      "hexValue": "31",
                      "id": 18765,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10471:1:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "10451:21:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 18767,
                  "nodeType": "ExpressionStatement",
                  "src": "10451:21:78"
                },
                {
                  "expression": {
                    "id": 18771,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "10482:23:78",
                    "subExpression": {
                      "baseExpression": {
                        "id": 18768,
                        "name": "_owners",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18157,
                        "src": "10489:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                          "typeString": "mapping(uint256 => address)"
                        }
                      },
                      "id": 18770,
                      "indexExpression": {
                        "id": 18769,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18735,
                        "src": "10497:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "10489:16:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18772,
                  "nodeType": "ExpressionStatement",
                  "src": "10482:23:78"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 18774,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18739,
                        "src": "10530:5:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 18777,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "10545:1:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 18776,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "10537:7:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 18775,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "10537:7:78",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 18778,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10537:10:78",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18779,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18735,
                        "src": "10549:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 18773,
                      "name": "Transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22315,
                      "src": "10521:8:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 18780,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10521:36:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18781,
                  "nodeType": "EmitStatement",
                  "src": "10516:41:78"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 18783,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18739,
                        "src": "10588:5:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 18786,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "10603:1:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 18785,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "10595:7:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 18784,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "10595:7:78",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 18787,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10595:10:78",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18788,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18735,
                        "src": "10607:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 18782,
                      "name": "_afterTokenTransfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19007,
                      "src": "10568:19:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 18789,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10568:47:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18790,
                  "nodeType": "ExpressionStatement",
                  "src": "10568:47:78"
                }
              ]
            },
            "documentation": {
              "id": 18733,
              "nodeType": "StructuredDocumentation",
              "src": "9994:206:78",
              "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event."
            },
            "id": 18792,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_burn",
            "nameLocation": "10214:5:78",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18736,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18735,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "10228:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18792,
                  "src": "10220:15:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18734,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10220:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10219:17:78"
            },
            "returnParameters": {
              "id": 18737,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10254:0:78"
            },
            "scope": 19013,
            "src": "10205:417:78",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 18866,
              "nodeType": "Block",
              "src": "11055:507:78",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 18808,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [
                            {
                              "id": 18805,
                              "name": "tokenId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 18799,
                              "src": "11099:7:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 18803,
                              "name": "ERC721Upgradeable",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19013,
                              "src": "11073:17:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_ERC721Upgradeable_$19013_$",
                                "typeString": "type(contract ERC721Upgradeable)"
                              }
                            },
                            "id": 18804,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "ownerOf",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 18288,
                            "src": "11073:25:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                              "typeString": "function (uint256) view returns (address)"
                            }
                          },
                          "id": 18806,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11073:34:78",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "id": 18807,
                          "name": "from",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18795,
                          "src": "11111:4:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "11073:42:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572",
                        "id": 18809,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11117:39:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48",
                          "typeString": "literal_string \"ERC721: transfer from incorrect owner\""
                        },
                        "value": "ERC721: transfer from incorrect owner"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48",
                          "typeString": "literal_string \"ERC721: transfer from incorrect owner\""
                        }
                      ],
                      "id": 18802,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "11065:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 18810,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11065:92:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18811,
                  "nodeType": "ExpressionStatement",
                  "src": "11065:92:78"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 18818,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 18813,
                          "name": "to",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18797,
                          "src": "11175:2:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 18816,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "11189:1:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 18815,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "11181:7:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 18814,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "11181:7:78",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 18817,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11181:10:78",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "11175:16:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373",
                        "id": 18819,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11193:38:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4",
                          "typeString": "literal_string \"ERC721: transfer to the zero address\""
                        },
                        "value": "ERC721: transfer to the zero address"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4",
                          "typeString": "literal_string \"ERC721: transfer to the zero address\""
                        }
                      ],
                      "id": 18812,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "11167:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 18820,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11167:65:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18821,
                  "nodeType": "ExpressionStatement",
                  "src": "11167:65:78"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 18823,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18795,
                        "src": "11264:4:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18824,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18797,
                        "src": "11270:2:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18825,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18799,
                        "src": "11274:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 18822,
                      "name": "_beforeTokenTransfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18996,
                      "src": "11243:20:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 18826,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11243:39:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18827,
                  "nodeType": "ExpressionStatement",
                  "src": "11243:39:78"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 18831,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11361:1:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 18830,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "11353:7:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 18829,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "11353:7:78",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 18832,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11353:10:78",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18833,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18799,
                        "src": "11365:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 18828,
                      "name": "_approve",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18891,
                      "src": "11344:8:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 18834,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11344:29:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18835,
                  "nodeType": "ExpressionStatement",
                  "src": "11344:29:78"
                },
                {
                  "expression": {
                    "id": 18840,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 18836,
                        "name": "_balances",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18161,
                        "src": "11384:9:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 18838,
                      "indexExpression": {
                        "id": 18837,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18795,
                        "src": "11394:4:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "11384:15:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "-=",
                    "rightHandSide": {
                      "hexValue": "31",
                      "id": 18839,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11403:1:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "11384:20:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 18841,
                  "nodeType": "ExpressionStatement",
                  "src": "11384:20:78"
                },
                {
                  "expression": {
                    "id": 18846,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 18842,
                        "name": "_balances",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18161,
                        "src": "11414:9:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 18844,
                      "indexExpression": {
                        "id": 18843,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18797,
                        "src": "11424:2:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "11414:13:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "hexValue": "31",
                      "id": 18845,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11431:1:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "11414:18:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 18847,
                  "nodeType": "ExpressionStatement",
                  "src": "11414:18:78"
                },
                {
                  "expression": {
                    "id": 18852,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 18848,
                        "name": "_owners",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18157,
                        "src": "11442:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                          "typeString": "mapping(uint256 => address)"
                        }
                      },
                      "id": 18850,
                      "indexExpression": {
                        "id": 18849,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18799,
                        "src": "11450:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "11442:16:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 18851,
                      "name": "to",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18797,
                      "src": "11461:2:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "11442:21:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 18853,
                  "nodeType": "ExpressionStatement",
                  "src": "11442:21:78"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 18855,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18795,
                        "src": "11488:4:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18856,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18797,
                        "src": "11494:2:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18857,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18799,
                        "src": "11498:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 18854,
                      "name": "Transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22315,
                      "src": "11479:8:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 18858,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11479:27:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18859,
                  "nodeType": "EmitStatement",
                  "src": "11474:32:78"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 18861,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18795,
                        "src": "11537:4:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18862,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18797,
                        "src": "11543:2:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18863,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18799,
                        "src": "11547:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 18860,
                      "name": "_afterTokenTransfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19007,
                      "src": "11517:19:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 18864,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11517:38:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18865,
                  "nodeType": "ExpressionStatement",
                  "src": "11517:38:78"
                }
              ]
            },
            "documentation": {
              "id": 18793,
              "nodeType": "StructuredDocumentation",
              "src": "10628:313:78",
              "text": " @dev Transfers `tokenId` from `from` to `to`.\n  As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event."
            },
            "id": 18867,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_transfer",
            "nameLocation": "10955:9:78",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18800,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18795,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "10982:4:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18867,
                  "src": "10974:12:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18794,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10974:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18797,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "11004:2:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18867,
                  "src": "10996:10:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18796,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10996:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18799,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "11024:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18867,
                  "src": "11016:15:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18798,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11016:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10964:73:78"
            },
            "returnParameters": {
              "id": 18801,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11055:0:78"
            },
            "scope": 19013,
            "src": "10946:616:78",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 18890,
              "nodeType": "Block",
              "src": "11737:118:78",
              "statements": [
                {
                  "expression": {
                    "id": 18879,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 18875,
                        "name": "_tokenApprovals",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18165,
                        "src": "11747:15:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                          "typeString": "mapping(uint256 => address)"
                        }
                      },
                      "id": 18877,
                      "indexExpression": {
                        "id": 18876,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18872,
                        "src": "11763:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "11747:24:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 18878,
                      "name": "to",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18870,
                      "src": "11774:2:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "11747:29:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 18880,
                  "nodeType": "ExpressionStatement",
                  "src": "11747:29:78"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 18884,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18872,
                            "src": "11826:7:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "id": 18882,
                            "name": "ERC721Upgradeable",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19013,
                            "src": "11800:17:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_ERC721Upgradeable_$19013_$",
                              "typeString": "type(contract ERC721Upgradeable)"
                            }
                          },
                          "id": 18883,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "ownerOf",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 18288,
                          "src": "11800:25:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                            "typeString": "function (uint256) view returns (address)"
                          }
                        },
                        "id": 18885,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11800:34:78",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18886,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18870,
                        "src": "11836:2:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18887,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18872,
                        "src": "11840:7:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 18881,
                      "name": "Approval",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22324,
                      "src": "11791:8:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 18888,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11791:57:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18889,
                  "nodeType": "EmitStatement",
                  "src": "11786:62:78"
                }
              ]
            },
            "documentation": {
              "id": 18868,
              "nodeType": "StructuredDocumentation",
              "src": "11568:100:78",
              "text": " @dev Approve `to` to operate on `tokenId`\n Emits a {Approval} event."
            },
            "id": 18891,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_approve",
            "nameLocation": "11682:8:78",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18873,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18870,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "11699:2:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18891,
                  "src": "11691:10:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18869,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11691:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18872,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "11711:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18891,
                  "src": "11703:15:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18871,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11703:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11690:29:78"
            },
            "returnParameters": {
              "id": 18874,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11737:0:78"
            },
            "scope": 19013,
            "src": "11673:182:78",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 18922,
              "nodeType": "Block",
              "src": "12113:184:78",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 18904,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 18902,
                          "name": "owner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18894,
                          "src": "12131:5:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "id": 18903,
                          "name": "operator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18896,
                          "src": "12140:8:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "12131:17:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572",
                        "id": 18905,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12150:27:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05",
                          "typeString": "literal_string \"ERC721: approve to caller\""
                        },
                        "value": "ERC721: approve to caller"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05",
                          "typeString": "literal_string \"ERC721: approve to caller\""
                        }
                      ],
                      "id": 18901,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "12123:7:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 18906,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12123:55:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18907,
                  "nodeType": "ExpressionStatement",
                  "src": "12123:55:78"
                },
                {
                  "expression": {
                    "id": 18914,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "baseExpression": {
                          "id": 18908,
                          "name": "_operatorApprovals",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18171,
                          "src": "12188:18:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$",
                            "typeString": "mapping(address => mapping(address => bool))"
                          }
                        },
                        "id": 18911,
                        "indexExpression": {
                          "id": 18909,
                          "name": "owner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18894,
                          "src": "12207:5:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "12188:25:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                          "typeString": "mapping(address => bool)"
                        }
                      },
                      "id": 18912,
                      "indexExpression": {
                        "id": 18910,
                        "name": "operator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18896,
                        "src": "12214:8:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "12188:35:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 18913,
                      "name": "approved",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18898,
                      "src": "12226:8:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "12188:46:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 18915,
                  "nodeType": "ExpressionStatement",
                  "src": "12188:46:78"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 18917,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18894,
                        "src": "12264:5:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18918,
                        "name": "operator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18896,
                        "src": "12271:8:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 18919,
                        "name": "approved",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18898,
                        "src": "12281:8:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 18916,
                      "name": "ApprovalForAll",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22333,
                      "src": "12249:14:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$",
                        "typeString": "function (address,address,bool)"
                      }
                    },
                    "id": 18920,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12249:41:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18921,
                  "nodeType": "EmitStatement",
                  "src": "12244:46:78"
                }
              ]
            },
            "documentation": {
              "id": 18892,
              "nodeType": "StructuredDocumentation",
              "src": "11861:124:78",
              "text": " @dev Approve `operator` to operate on all of `owner` tokens\n Emits a {ApprovalForAll} event."
            },
            "id": 18923,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_setApprovalForAll",
            "nameLocation": "11999:18:78",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18899,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18894,
                  "mutability": "mutable",
                  "name": "owner",
                  "nameLocation": "12035:5:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18923,
                  "src": "12027:13:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18893,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "12027:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18896,
                  "mutability": "mutable",
                  "name": "operator",
                  "nameLocation": "12058:8:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18923,
                  "src": "12050:16:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18895,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "12050:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18898,
                  "mutability": "mutable",
                  "name": "approved",
                  "nameLocation": "12081:8:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18923,
                  "src": "12076:13:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 18897,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "12076:4:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12017:78:78"
            },
            "returnParameters": {
              "id": 18900,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12113:0:78"
            },
            "scope": 19013,
            "src": "11990:307:78",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 18984,
              "nodeType": "Block",
              "src": "13006:644:78",
              "statements": [
                {
                  "condition": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 18937,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18928,
                        "src": "13020:2:78",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 18938,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "isContract",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 16021,
                      "src": "13020:13:78",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$",
                        "typeString": "function (address) view returns (bool)"
                      }
                    },
                    "id": 18939,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13020:15:78",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 18982,
                    "nodeType": "Block",
                    "src": "13608:36:78",
                    "statements": [
                      {
                        "expression": {
                          "hexValue": "74727565",
                          "id": 18980,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13629:4:78",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 18936,
                        "id": 18981,
                        "nodeType": "Return",
                        "src": "13622:11:78"
                      }
                    ]
                  },
                  "id": 18983,
                  "nodeType": "IfStatement",
                  "src": "13016:628:78",
                  "trueBody": {
                    "id": 18979,
                    "nodeType": "Block",
                    "src": "13037:565:78",
                    "statements": [
                      {
                        "clauses": [
                          {
                            "block": {
                              "id": 18959,
                              "nodeType": "Block",
                              "src": "13163:102:78",
                              "statements": [
                                {
                                  "expression": {
                                    "commonType": {
                                      "typeIdentifier": "t_bytes4",
                                      "typeString": "bytes4"
                                    },
                                    "id": 18957,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 18953,
                                      "name": "retval",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 18951,
                                      "src": "13188:6:78",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes4",
                                        "typeString": "bytes4"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "==",
                                    "rightExpression": {
                                      "expression": {
                                        "expression": {
                                          "id": 18954,
                                          "name": "IERC721ReceiverUpgradeable",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 26038,
                                          "src": "13198:26:78",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_contract$_IERC721ReceiverUpgradeable_$26038_$",
                                            "typeString": "type(contract IERC721ReceiverUpgradeable)"
                                          }
                                        },
                                        "id": 18955,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "memberName": "onERC721Received",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 26037,
                                        "src": "13198:43:78",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$",
                                          "typeString": "function IERC721ReceiverUpgradeable.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"
                                        }
                                      },
                                      "id": 18956,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "memberName": "selector",
                                      "nodeType": "MemberAccess",
                                      "src": "13198:52:78",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes4",
                                        "typeString": "bytes4"
                                      }
                                    },
                                    "src": "13188:62:78",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "functionReturnParameters": 18936,
                                  "id": 18958,
                                  "nodeType": "Return",
                                  "src": "13181:69:78"
                                }
                              ]
                            },
                            "errorName": "",
                            "id": 18960,
                            "nodeType": "TryCatchClause",
                            "parameters": {
                              "id": 18952,
                              "nodeType": "ParameterList",
                              "parameters": [
                                {
                                  "constant": false,
                                  "id": 18951,
                                  "mutability": "mutable",
                                  "name": "retval",
                                  "nameLocation": "13155:6:78",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 18960,
                                  "src": "13148:13:78",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  },
                                  "typeName": {
                                    "id": 18950,
                                    "name": "bytes4",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "13148:6:78",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes4",
                                      "typeString": "bytes4"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "src": "13147:15:78"
                            },
                            "src": "13139:126:78"
                          },
                          {
                            "block": {
                              "id": 18976,
                              "nodeType": "Block",
                              "src": "13294:298:78",
                              "statements": [
                                {
                                  "condition": {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 18967,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "expression": {
                                        "id": 18964,
                                        "name": "reason",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 18962,
                                        "src": "13316:6:78",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      },
                                      "id": 18965,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "length",
                                      "nodeType": "MemberAccess",
                                      "src": "13316:13:78",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "==",
                                    "rightExpression": {
                                      "hexValue": "30",
                                      "id": 18966,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "13333:1:78",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0"
                                    },
                                    "src": "13316:18:78",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseBody": {
                                    "id": 18974,
                                    "nodeType": "Block",
                                    "src": "13443:135:78",
                                    "statements": [
                                      {
                                        "AST": {
                                          "nodeType": "YulBlock",
                                          "src": "13474:86:78",
                                          "statements": [
                                            {
                                              "expression": {
                                                "arguments": [
                                                  {
                                                    "arguments": [
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "13511:2:78",
                                                        "type": "",
                                                        "value": "32"
                                                      },
                                                      {
                                                        "name": "reason",
                                                        "nodeType": "YulIdentifier",
                                                        "src": "13515:6:78"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "add",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "13507:3:78"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "13507:15:78"
                                                  },
                                                  {
                                                    "arguments": [
                                                      {
                                                        "name": "reason",
                                                        "nodeType": "YulIdentifier",
                                                        "src": "13530:6:78"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "mload",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "13524:5:78"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "13524:13:78"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "revert",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "13500:6:78"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "13500:38:78"
                                              },
                                              "nodeType": "YulExpressionStatement",
                                              "src": "13500:38:78"
                                            }
                                          ]
                                        },
                                        "evmVersion": "istanbul",
                                        "externalReferences": [
                                          {
                                            "declaration": 18962,
                                            "isOffset": false,
                                            "isSlot": false,
                                            "src": "13515:6:78",
                                            "valueSize": 1
                                          },
                                          {
                                            "declaration": 18962,
                                            "isOffset": false,
                                            "isSlot": false,
                                            "src": "13530:6:78",
                                            "valueSize": 1
                                          }
                                        ],
                                        "id": 18973,
                                        "nodeType": "InlineAssembly",
                                        "src": "13465:95:78"
                                      }
                                    ]
                                  },
                                  "id": 18975,
                                  "nodeType": "IfStatement",
                                  "src": "13312:266:78",
                                  "trueBody": {
                                    "id": 18972,
                                    "nodeType": "Block",
                                    "src": "13336:101:78",
                                    "statements": [
                                      {
                                        "expression": {
                                          "arguments": [
                                            {
                                              "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572",
                                              "id": 18969,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "string",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "13365:52:78",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e",
                                                "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\""
                                              },
                                              "value": "ERC721: transfer to non ERC721Receiver implementer"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e",
                                                "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\""
                                              }
                                            ],
                                            "id": 18968,
                                            "name": "revert",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                              -19,
                                              -19
                                            ],
                                            "referencedDeclaration": -19,
                                            "src": "13358:6:78",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                                              "typeString": "function (string memory) pure"
                                            }
                                          },
                                          "id": 18970,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "functionCall",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "13358:60:78",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                          }
                                        },
                                        "id": 18971,
                                        "nodeType": "ExpressionStatement",
                                        "src": "13358:60:78"
                                      }
                                    ]
                                  }
                                }
                              ]
                            },
                            "errorName": "",
                            "id": 18977,
                            "nodeType": "TryCatchClause",
                            "parameters": {
                              "id": 18963,
                              "nodeType": "ParameterList",
                              "parameters": [
                                {
                                  "constant": false,
                                  "id": 18962,
                                  "mutability": "mutable",
                                  "name": "reason",
                                  "nameLocation": "13286:6:78",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 18977,
                                  "src": "13273:19:78",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes"
                                  },
                                  "typeName": {
                                    "id": 18961,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "13273:5:78",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_storage_ptr",
                                      "typeString": "bytes"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "src": "13272:21:78"
                            },
                            "src": "13266:326:78"
                          }
                        ],
                        "externalCall": {
                          "arguments": [
                            {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 18944,
                                "name": "_msgSender",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26005,
                                "src": "13103:10:78",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                                  "typeString": "function () view returns (address)"
                                }
                              },
                              "id": 18945,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13103:12:78",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "id": 18946,
                              "name": "from",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 18926,
                              "src": "13117:4:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "id": 18947,
                              "name": "tokenId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 18930,
                              "src": "13123:7:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 18948,
                              "name": "_data",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 18932,
                              "src": "13132:5:78",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "expression": {
                              "arguments": [
                                {
                                  "id": 18941,
                                  "name": "to",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 18928,
                                  "src": "13082:2:78",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 18940,
                                "name": "IERC721ReceiverUpgradeable",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26038,
                                "src": "13055:26:78",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IERC721ReceiverUpgradeable_$26038_$",
                                  "typeString": "type(contract IERC721ReceiverUpgradeable)"
                                }
                              },
                              "id": 18942,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13055:30:78",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IERC721ReceiverUpgradeable_$26038",
                                "typeString": "contract IERC721ReceiverUpgradeable"
                              }
                            },
                            "id": 18943,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "onERC721Received",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 26037,
                            "src": "13055:47:78",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
                              "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)"
                            }
                          },
                          "id": 18949,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13055:83:78",
                          "tryCall": true,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "id": 18978,
                        "nodeType": "TryStatement",
                        "src": "13051:541:78"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 18924,
              "nodeType": "StructuredDocumentation",
              "src": "12303:542:78",
              "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value"
            },
            "id": 18985,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_checkOnERC721Received",
            "nameLocation": "12859:22:78",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18933,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18926,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "12899:4:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18985,
                  "src": "12891:12:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18925,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "12891:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18928,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "12921:2:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18985,
                  "src": "12913:10:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18927,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "12913:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18930,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "12941:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18985,
                  "src": "12933:15:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18929,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12933:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18932,
                  "mutability": "mutable",
                  "name": "_data",
                  "nameLocation": "12971:5:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18985,
                  "src": "12958:18:78",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 18931,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "12958:5:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12881:101:78"
            },
            "returnParameters": {
              "id": 18936,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18935,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 18985,
                  "src": "13000:4:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 18934,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "13000:4:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12999:6:78"
            },
            "scope": 19013,
            "src": "12850:800:78",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 18995,
              "nodeType": "Block",
              "src": "14326:2:78",
              "statements": []
            },
            "documentation": {
              "id": 18986,
              "nodeType": "StructuredDocumentation",
              "src": "13656:545:78",
              "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."
            },
            "id": 18996,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_beforeTokenTransfer",
            "nameLocation": "14215:20:78",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18993,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18988,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "14253:4:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18996,
                  "src": "14245:12:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18987,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14245:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18990,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "14275:2:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18996,
                  "src": "14267:10:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18989,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14267:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18992,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "14295:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 18996,
                  "src": "14287:15:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18991,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14287:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14235:73:78"
            },
            "returnParameters": {
              "id": 18994,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14326:0:78"
            },
            "scope": 19013,
            "src": "14206:122:78",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 19006,
              "nodeType": "Block",
              "src": "14819:2:78",
              "statements": []
            },
            "documentation": {
              "id": 18997,
              "nodeType": "StructuredDocumentation",
              "src": "14334:361:78",
              "text": " @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."
            },
            "id": 19007,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_afterTokenTransfer",
            "nameLocation": "14709:19:78",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19004,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18999,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "14746:4:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 19007,
                  "src": "14738:12:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18998,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14738:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 19001,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "14768:2:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 19007,
                  "src": "14760:10:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 19000,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14760:7:78",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 19003,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "14788:7:78",
                  "nodeType": "VariableDeclaration",
                  "scope": 19007,
                  "src": "14780:15:78",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19002,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14780:7:78",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14728:73:78"
            },
            "returnParameters": {
              "id": 19005,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14819:0:78"
            },
            "scope": 19013,
            "src": "14700:121:78",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "constant": false,
            "documentation": {
              "id": 19008,
              "nodeType": "StructuredDocumentation",
              "src": "14827:254:78",
              "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"
            },
            "id": 19012,
            "mutability": "mutable",
            "name": "__gap",
            "nameLocation": "15106:5:78",
            "nodeType": "VariableDeclaration",
            "scope": 19013,
            "src": "15086:25:78",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$44_storage",
              "typeString": "uint256[44]"
            },
            "typeName": {
              "baseType": {
                "id": 19009,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "15086:7:78",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "id": 19011,
              "length": {
                "hexValue": "3434",
                "id": 19010,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "15094:2:78",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_44_by_1",
                  "typeString": "int_const 44"
                },
                "value": "44"
              },
              "nodeType": "ArrayTypeName",
              "src": "15086:11:78",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$44_storage_ptr",
                "typeString": "uint256[44]"
              }
            },
            "visibility": "private"
          }
        ],
        "scope": 19014,
        "src": "751:14363:78",
        "usedErrors": []
      }
    ],
    "src": "107:15008:78"
  },
  "bytecode": "608060405234801561001057600080fd5b5061125b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec57600080fd5b80636352211e1461017757806370a082311461018a57806395d89b41146101ab57600080fd5b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610f3a565b610228565b60405190151581526020015b60405180910390f35b61010461027a565b6040516100f39190611025565b61012461011f366004610f74565b61030c565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610f10565b6103a6565b005b61014f61015f366004610dbc565b6104bc565b61014f610172366004610dbc565b6104ed565b610124610185366004610f74565b610508565b61019d610198366004610d6e565b61057f565b6040519081526020016100f3565b610104610606565b61014f6101c1366004610ed4565b610615565b61014f6101d4366004610df8565b610624565b6101046101e7366004610f74565b61065c565b6100e76101fa366004610d89565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061025957506001600160e01b03198216635b5e139f60e01b145b8061027457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060606580546102899061114a565b80601f01602080910402602001604051908101604052809291908181526020018280546102b59061114a565b80156103025780601f106102d757610100808354040283529160200191610302565b820191906000526020600020905b8154815290600101906020018083116102e557829003601f168201915b5050505050905090565b6000818152606760205260408120546001600160a01b031661038a5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152606960205260409020546001600160a01b031690565b60006103b182610508565b9050806001600160a01b0316836001600160a01b0316141561041f5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610381565b336001600160a01b038216148061043b575061043b81336101fa565b6104ad5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610381565b6104b78383610744565b505050565b6104c633826107b2565b6104e25760405162461bcd60e51b81526004016103819061108a565b6104b78383836108a9565b6104b783838360405180602001604052806000815250610624565b6000818152606760205260408120546001600160a01b0316806102745760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610381565b60006001600160a01b0382166105ea5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610381565b506001600160a01b031660009081526068602052604090205490565b6060606680546102899061114a565b610620338383610a45565b5050565b61062e33836107b2565b61064a5760405162461bcd60e51b81526004016103819061108a565b61065684848484610b14565b50505050565b6000818152606760205260409020546060906001600160a01b03166106db5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610381565b60006106f260408051602081019091526000815290565b90506000815111610712576040518060200160405280600081525061073d565b8061071c84610b47565b60405160200161072d929190610fb9565b6040516020818303038152906040525b9392505050565b600081815260696020526040902080546001600160a01b0319166001600160a01b038416908117909155819061077982610508565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152606760205260408120546001600160a01b031661082b5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610381565b600061083683610508565b9050806001600160a01b0316846001600160a01b031614806108715750836001600160a01b03166108668461030c565b6001600160a01b0316145b806108a157506001600160a01b038082166000908152606a602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166108bc82610508565b6001600160a01b0316146109205760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610381565b6001600160a01b0382166109825760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610381565b61098d600082610744565b6001600160a01b03831660009081526068602052604081208054600192906109b6908490611107565b90915550506001600160a01b03821660009081526068602052604081208054600192906109e49084906110db565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b03161415610aa75760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610381565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610b1f8484846108a9565b610b2b84848484610c45565b6106565760405162461bcd60e51b815260040161038190611038565b606081610b6b5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610b955780610b7f81611185565b9150610b8e9050600a836110f3565b9150610b6f565b60008167ffffffffffffffff811115610bb057610bb06111f6565b6040519080825280601f01601f191660200182016040528015610bda576020820181803683370190505b5090505b84156108a157610bef600183611107565b9150610bfc600a866111a0565b610c079060306110db565b60f81b818381518110610c1c57610c1c6111e0565b60200101906001600160f81b031916908160001a905350610c3e600a866110f3565b9450610bde565b60006001600160a01b0384163b15610d4757604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610c89903390899088908890600401610fe8565b602060405180830381600087803b158015610ca357600080fd5b505af1925050508015610cd3575060408051601f3d908101601f19168201909252610cd091810190610f57565b60015b610d2d573d808015610d01576040519150601f19603f3d011682016040523d82523d6000602084013e610d06565b606091505b508051610d255760405162461bcd60e51b815260040161038190611038565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506108a1565b506001949350505050565b80356001600160a01b0381168114610d6957600080fd5b919050565b600060208284031215610d8057600080fd5b61073d82610d52565b60008060408385031215610d9c57600080fd5b610da583610d52565b9150610db360208401610d52565b90509250929050565b600080600060608486031215610dd157600080fd5b610dda84610d52565b9250610de860208501610d52565b9150604084013590509250925092565b60008060008060808587031215610e0e57600080fd5b610e1785610d52565b9350610e2560208601610d52565b925060408501359150606085013567ffffffffffffffff80821115610e4957600080fd5b818701915087601f830112610e5d57600080fd5b813581811115610e6f57610e6f6111f6565b604051601f8201601f19908116603f01168101908382118183101715610e9757610e976111f6565b816040528281528a6020848701011115610eb057600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610ee757600080fd5b610ef083610d52565b915060208301358015158114610f0557600080fd5b809150509250929050565b60008060408385031215610f2357600080fd5b610f2c83610d52565b946020939093013593505050565b600060208284031215610f4c57600080fd5b813561073d8161120c565b600060208284031215610f6957600080fd5b815161073d8161120c565b600060208284031215610f8657600080fd5b5035919050565b60008151808452610fa581602086016020860161111e565b601f01601f19169290920160200192915050565b60008351610fcb81846020880161111e565b835190830190610fdf81836020880161111e565b01949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061101b90830184610f8d565b9695505050505050565b60208152600061073d6020830184610f8d565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600082198211156110ee576110ee6111b4565b500190565b600082611102576111026111ca565b500490565b600082821015611119576111196111b4565b500390565b60005b83811015611139578181015183820152602001611121565b838111156106565750506000910152565b600181811c9082168061115e57607f821691505b6020821081141561117f57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611199576111996111b4565b5060010190565b6000826111af576111af6111ca565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461122257600080fd5b5056fea26469706673582212208eb18262e4373eaeffcc61258715bd7f80632e4ad9a43750915e75b5662740fc64736f6c63430008060033",
  "bytecodeSha1": "db706c46b1a8e2f2346b963b8cf6d9b8657c36ec",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.6+commit.11564f7e"
  },
  "contractName": "ERC721Upgradeable",
  "coverageMap": {
    "branches": {
      "72": {},
      "78": {
        "ERC721Upgradeable._safeTransfer": {
          "61": [
            7218,
            7266,
            true
          ]
        },
        "ERC721Upgradeable._setApprovalForAll": {
          "60": [
            12131,
            12148,
            true
          ]
        },
        "ERC721Upgradeable._transfer": {
          "58": [
            11073,
            11115,
            true
          ],
          "59": [
            11175,
            11191,
            true
          ]
        },
        "ERC721Upgradeable.approve": {
          "50": [
            4146,
            4157,
            true
          ],
          "51": [
            4227,
            4248,
            true
          ],
          "52": [
            4252,
            4289,
            true
          ]
        },
        "ERC721Upgradeable.balanceOf": {
          "55": [
            2489,
            2508,
            true
          ]
        },
        "ERC721Upgradeable.ownerOf": {
          "54": [
            2793,
            2812,
            true
          ]
        },
        "ERC721Upgradeable.safeTransferFrom": {
          "56": [
            6008,
            6049,
            true
          ]
        },
        "ERC721Upgradeable.tokenURI": {
          "57": [
            3515,
            3540,
            true
          ]
        },
        "ERC721Upgradeable.transferFrom": {
          "53": [
            5387,
            5428,
            true
          ]
        }
      },
      "79": {},
      "80": {},
      "81": {},
      "82": {},
      "83": {},
      "86": {
        "StringsUpgradeable.toString": {
          "62": [
            612,
            622,
            false
          ]
        }
      },
      "87": {},
      "88": {}
    },
    "statements": {
      "72": {},
      "78": {
        "ERC721Upgradeable._approve": {
          "24": [
            11747,
            11776
          ],
          "25": [
            11786,
            11848
          ]
        },
        "ERC721Upgradeable._baseURI": {
          "22": [
            3925,
            3934
          ]
        },
        "ERC721Upgradeable._checkOnERC721Received": {
          "47": [
            13358,
            13418
          ],
          "48": [
            13181,
            13250
          ],
          "49": [
            13622,
            13633
          ]
        },
        "ERC721Upgradeable._exists": {
          "4": [
            7712,
            7749
          ]
        },
        "ERC721Upgradeable._isApprovedOrOwner": {
          "26": [
            8023,
            8096
          ],
          "27": [
            8166,
            8262
          ]
        },
        "ERC721Upgradeable._safeTransfer": {
          "38": [
            7172,
            7200
          ],
          "39": [
            7210,
            7321
          ]
        },
        "ERC721Upgradeable._setApprovalForAll": {
          "35": [
            12123,
            12178
          ],
          "36": [
            12188,
            12234
          ],
          "37": [
            12244,
            12290
          ]
        },
        "ERC721Upgradeable._transfer": {
          "28": [
            11065,
            11157
          ],
          "29": [
            11167,
            11232
          ],
          "30": [
            11344,
            11373
          ],
          "31": [
            11384,
            11404
          ],
          "32": [
            11414,
            11432
          ],
          "33": [
            11442,
            11463
          ],
          "34": [
            11474,
            11506
          ]
        },
        "ERC721Upgradeable.approve": {
          "7": [
            4138,
            4195
          ],
          "9": [
            4206,
            4371
          ],
          "10": [
            4382,
            4403
          ]
        },
        "ERC721Upgradeable.balanceOf": {
          "15": [
            2481,
            2555
          ],
          "16": [
            2565,
            2588
          ]
        },
        "ERC721Upgradeable.getApproved": {
          "5": [
            4566,
            4639
          ],
          "6": [
            4650,
            4681
          ]
        },
        "ERC721Upgradeable.isApprovedForAll": {
          "0": [
            5087,
            5129
          ]
        },
        "ERC721Upgradeable.name": {
          "3": [
            3028,
            3040
          ]
        },
        "ERC721Upgradeable.ownerOf": {
          "14": [
            2785,
            2858
          ]
        },
        "ERC721Upgradeable.safeTransferFrom": {
          "13": [
            5727,
            5766
          ],
          "19": [
            6000,
            6103
          ],
          "20": [
            6113,
            6152
          ]
        },
        "ERC721Upgradeable.setApprovalForAll": {
          "18": [
            4849,
            4901
          ]
        },
        "ERC721Upgradeable.supportsInterface": {
          "1": [
            2127,
            2324
          ]
        },
        "ERC721Upgradeable.symbol": {
          "17": [
            3192,
            3206
          ]
        },
        "ERC721Upgradeable.tokenURI": {
          "21": [
            3377,
            3453
          ],
          "23": [
            3508,
            3601
          ]
        },
        "ERC721Upgradeable.transferFrom": {
          "11": [
            5379,
            5482
          ],
          "12": [
            5493,
            5521
          ]
        }
      },
      "79": {},
      "80": {},
      "81": {},
      "82": {
        "AddressUpgradeable.isContract": {
          "46": [
            1469,
            1499
          ]
        }
      },
      "83": {
        "ContextUpgradeable._msgSender": {
          "8": [
            922,
            939
          ]
        }
      },
      "86": {
        "StringsUpgradeable.toString": {
          "40": [
            638,
            648
          ],
          "41": [
            754,
            762
          ],
          "42": [
            776,
            786
          ],
          "43": [
            888,
            899
          ],
          "44": [
            913,
            969
          ],
          "45": [
            983,
            994
          ]
        }
      },
      "87": {
        "ERC165Upgradeable.supportsInterface": {
          "2": [
            1161,
            1219
          ]
        }
      },
      "88": {}
    }
  },
  "dependencies": [
    "AddressUpgradeable",
    "ContextUpgradeable",
    "ERC165Upgradeable",
    "IERC165Upgradeable",
    "IERC721MetadataUpgradeable",
    "IERC721ReceiverUpgradeable",
    "IERC721Upgradeable",
    "Initializable",
    "StringsUpgradeable"
  ],
  "deployedBytecode": "608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec57600080fd5b80636352211e1461017757806370a082311461018a57806395d89b41146101ab57600080fd5b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610f3a565b610228565b60405190151581526020015b60405180910390f35b61010461027a565b6040516100f39190611025565b61012461011f366004610f74565b61030c565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610f10565b6103a6565b005b61014f61015f366004610dbc565b6104bc565b61014f610172366004610dbc565b6104ed565b610124610185366004610f74565b610508565b61019d610198366004610d6e565b61057f565b6040519081526020016100f3565b610104610606565b61014f6101c1366004610ed4565b610615565b61014f6101d4366004610df8565b610624565b6101046101e7366004610f74565b61065c565b6100e76101fa366004610d89565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061025957506001600160e01b03198216635b5e139f60e01b145b8061027457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060606580546102899061114a565b80601f01602080910402602001604051908101604052809291908181526020018280546102b59061114a565b80156103025780601f106102d757610100808354040283529160200191610302565b820191906000526020600020905b8154815290600101906020018083116102e557829003601f168201915b5050505050905090565b6000818152606760205260408120546001600160a01b031661038a5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152606960205260409020546001600160a01b031690565b60006103b182610508565b9050806001600160a01b0316836001600160a01b0316141561041f5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610381565b336001600160a01b038216148061043b575061043b81336101fa565b6104ad5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610381565b6104b78383610744565b505050565b6104c633826107b2565b6104e25760405162461bcd60e51b81526004016103819061108a565b6104b78383836108a9565b6104b783838360405180602001604052806000815250610624565b6000818152606760205260408120546001600160a01b0316806102745760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610381565b60006001600160a01b0382166105ea5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610381565b506001600160a01b031660009081526068602052604090205490565b6060606680546102899061114a565b610620338383610a45565b5050565b61062e33836107b2565b61064a5760405162461bcd60e51b81526004016103819061108a565b61065684848484610b14565b50505050565b6000818152606760205260409020546060906001600160a01b03166106db5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610381565b60006106f260408051602081019091526000815290565b90506000815111610712576040518060200160405280600081525061073d565b8061071c84610b47565b60405160200161072d929190610fb9565b6040516020818303038152906040525b9392505050565b600081815260696020526040902080546001600160a01b0319166001600160a01b038416908117909155819061077982610508565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152606760205260408120546001600160a01b031661082b5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610381565b600061083683610508565b9050806001600160a01b0316846001600160a01b031614806108715750836001600160a01b03166108668461030c565b6001600160a01b0316145b806108a157506001600160a01b038082166000908152606a602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166108bc82610508565b6001600160a01b0316146109205760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610381565b6001600160a01b0382166109825760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610381565b61098d600082610744565b6001600160a01b03831660009081526068602052604081208054600192906109b6908490611107565b90915550506001600160a01b03821660009081526068602052604081208054600192906109e49084906110db565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b03161415610aa75760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610381565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610b1f8484846108a9565b610b2b84848484610c45565b6106565760405162461bcd60e51b815260040161038190611038565b606081610b6b5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610b955780610b7f81611185565b9150610b8e9050600a836110f3565b9150610b6f565b60008167ffffffffffffffff811115610bb057610bb06111f6565b6040519080825280601f01601f191660200182016040528015610bda576020820181803683370190505b5090505b84156108a157610bef600183611107565b9150610bfc600a866111a0565b610c079060306110db565b60f81b818381518110610c1c57610c1c6111e0565b60200101906001600160f81b031916908160001a905350610c3e600a866110f3565b9450610bde565b60006001600160a01b0384163b15610d4757604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610c89903390899088908890600401610fe8565b602060405180830381600087803b158015610ca357600080fd5b505af1925050508015610cd3575060408051601f3d908101601f19168201909252610cd091810190610f57565b60015b610d2d573d808015610d01576040519150601f19603f3d011682016040523d82523d6000602084013e610d06565b606091505b508051610d255760405162461bcd60e51b815260040161038190611038565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506108a1565b506001949350505050565b80356001600160a01b0381168114610d6957600080fd5b919050565b600060208284031215610d8057600080fd5b61073d82610d52565b60008060408385031215610d9c57600080fd5b610da583610d52565b9150610db360208401610d52565b90509250929050565b600080600060608486031215610dd157600080fd5b610dda84610d52565b9250610de860208501610d52565b9150604084013590509250925092565b60008060008060808587031215610e0e57600080fd5b610e1785610d52565b9350610e2560208601610d52565b925060408501359150606085013567ffffffffffffffff80821115610e4957600080fd5b818701915087601f830112610e5d57600080fd5b813581811115610e6f57610e6f6111f6565b604051601f8201601f19908116603f01168101908382118183101715610e9757610e976111f6565b816040528281528a6020848701011115610eb057600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610ee757600080fd5b610ef083610d52565b915060208301358015158114610f0557600080fd5b809150509250929050565b60008060408385031215610f2357600080fd5b610f2c83610d52565b946020939093013593505050565b600060208284031215610f4c57600080fd5b813561073d8161120c565b600060208284031215610f6957600080fd5b815161073d8161120c565b600060208284031215610f8657600080fd5b5035919050565b60008151808452610fa581602086016020860161111e565b601f01601f19169290920160200192915050565b60008351610fcb81846020880161111e565b835190830190610fdf81836020880161111e565b01949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061101b90830184610f8d565b9695505050505050565b60208152600061073d6020830184610f8d565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600082198211156110ee576110ee6111b4565b500190565b600082611102576111026111ca565b500490565b600082821015611119576111196111b4565b500390565b60005b83811015611139578181015183820152602001611121565b838111156106565750506000910152565b600181811c9082168061115e57607f821691505b6020821081141561117f57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611199576111996111b4565b5060010190565b6000826111af576111af6111ca565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461122257600080fd5b5056fea26469706673582212208eb18262e4373eaeffcc61258715bd7f80632e4ad9a43750915e75b5662740fc64736f6c63430008060033",
  "deployedSourceMap": "751:14363:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1987:344;;;;;;:::i;:::-;;:::i;:::-;;;5027:14:114;;5020:22;5002:41;;4990:2;4975:18;1987:344:78;;;;;;;;2949:98;;;:::i;:::-;;;;;;;:::i;4471:217::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;4325:32:114;;;4307:51;;4295:2;4280:18;4471:217:78;4262:102:114;3998:412:78;;;;;;:::i;:::-;;:::i;:::-;;5198:330;;;;;;:::i;:::-;;:::i;5594:179::-;;;;;;:::i;:::-;;:::i;2652:235::-;;;;;;:::i;:::-;;:::i;2390:205::-;;;;;;:::i;:::-;;:::i;:::-;;;10316:25:114;;;10304:2;10289:18;2390:205:78;10271:76:114;3111:102:78;;;:::i;4755:153::-;;;;;;:::i;:::-;;:::i;5839:320::-;;;;;;:::i;:::-;;:::i;3279:329::-;;;;;;:::i;:::-;;:::i;4974:162::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5094:25:78;;;5071:4;5094:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4974:162;1987:344;2111:4;-1:-1:-1;;;;;;2146:51:78;;-1:-1:-1;;;2146:51:78;;:126;;-1:-1:-1;;;;;;;2213:59:78;;-1:-1:-1;;;2213:59:78;2146:126;:178;;;-1:-1:-1;;;;;;;;;;1168:51:87;;;2288:36:78;2127:197;1987:344;-1:-1:-1;;1987:344:78:o;2949:98::-;3003:13;3035:5;3028:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2949:98;:::o;4471:217::-;4547:7;7719:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7719:16:78;4566:73;;;;-1:-1:-1;;;4566:73:78;;8723:2:114;4566:73:78;;;8705:21:114;8762:2;8742:18;;;8735:30;8801:34;8781:18;;;8774:62;-1:-1:-1;;;8852:18:114;;;8845:42;8904:19;;4566:73:78;;;;;;;;;-1:-1:-1;4657:24:78;;;;:15;:24;;;;;;-1:-1:-1;;;;;4657:24:78;;4471:217::o;3998:412::-;4078:13;4094:34;4120:7;4094:25;:34::i;:::-;4078:50;;4152:5;-1:-1:-1;;;;;4146:11:78;:2;-1:-1:-1;;;;;4146:11:78;;;4138:57;;;;-1:-1:-1;;;4138:57:78;;9552:2:114;4138:57:78;;;9534:21:114;9591:2;9571:18;;;9564:30;9630:34;9610:18;;;9603:62;-1:-1:-1;;;9681:18:114;;;9674:31;9722:19;;4138:57:78;9524:223:114;4138:57:78;929:10:83;-1:-1:-1;;;;;4227:21:78;;;;:62;;-1:-1:-1;4252:37:78;4269:5;929:10:83;4974:162:78;:::i;4252:37::-;4206:165;;;;-1:-1:-1;;;4206:165:78;;7477:2:114;4206:165:78;;;7459:21:114;7516:2;7496:18;;;7489:30;7555:34;7535:18;;;7528:62;7626:26;7606:18;;;7599:54;7670:19;;4206:165:78;7449:246:114;4206:165:78;4382:21;4391:2;4395:7;4382:8;:21::i;:::-;4068:342;3998:412;;:::o;5198:330::-;5387:41;929:10:83;5420:7:78;5387:18;:41::i;:::-;5379:103;;;;-1:-1:-1;;;5379:103:78;;;;;;;:::i;:::-;5493:28;5503:4;5509:2;5513:7;5493:9;:28::i;5594:179::-;5727:39;5744:4;5750:2;5754:7;5727:39;;;;;;;;;;;;:16;:39::i;2652:235::-;2724:7;2759:16;;;:7;:16;;;;;;-1:-1:-1;;;;;2759:16:78;2793:19;2785:73;;;;-1:-1:-1;;;2785:73:78;;8313:2:114;2785:73:78;;;8295:21:114;8352:2;8332:18;;;8325:30;8391:34;8371:18;;;8364:62;-1:-1:-1;;;8442:18:114;;;8435:39;8491:19;;2785:73:78;8285:231:114;2390:205:78;2462:7;-1:-1:-1;;;;;2489:19:78;;2481:74;;;;-1:-1:-1;;;2481:74:78;;7902:2:114;2481:74:78;;;7884:21:114;7941:2;7921:18;;;7914:30;7980:34;7960:18;;;7953:62;-1:-1:-1;;;8031:18:114;;;8024:40;8081:19;;2481:74:78;7874:232:114;2481:74:78;-1:-1:-1;;;;;;2572:16:78;;;;;:9;:16;;;;;;;2390:205::o;3111:102::-;3167:13;3199:7;3192:14;;;;;:::i;4755:153::-;4849:52;929:10:83;4882:8:78;4892;4849:18;:52::i;:::-;4755:153;;:::o;5839:320::-;6008:41;929:10:83;6041:7:78;6008:18;:41::i;:::-;6000:103;;;;-1:-1:-1;;;6000:103:78;;;;;;;:::i;:::-;6113:39;6127:4;6133:2;6137:7;6146:5;6113:13;:39::i;:::-;5839:320;;;;:::o;3279:329::-;7696:4;7719:16;;;:7;:16;;;;;;3352:13;;-1:-1:-1;;;;;7719:16:78;3377:76;;;;-1:-1:-1;;;3377:76:78;;9136:2:114;3377:76:78;;;9118:21:114;9175:2;9155:18;;;9148:30;9214:34;9194:18;;;9187:62;-1:-1:-1;;;9265:18:114;;;9258:45;9320:19;;3377:76:78;9108:237:114;3377:76:78;3464:21;3488:10;3925:9;;;;;;;;;-1:-1:-1;3925:9:78;;;3849:92;3488:10;3464:34;;3539:1;3521:7;3515:21;:25;:86;;;;;;;;;;;;;;;;;3567:7;3576:18;:7;:16;:18::i;:::-;3550:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3515:86;3508:93;3279:329;-1:-1:-1;;;3279:329:78:o;11673:182::-;11747:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;11747:29:78;-1:-1:-1;;;;;11747:29:78;;;;;;;;:24;;11800:34;11747:24;11800:25;:34::i;:::-;-1:-1:-1;;;;;11791:57:78;;;;;;;;;;;11673:182;;:::o;7914:355::-;8007:4;7719:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7719:16:78;8023:73;;;;-1:-1:-1;;;8023:73:78;;7064:2:114;8023:73:78;;;7046:21:114;7103:2;7083:18;;;7076:30;7142:34;7122:18;;;7115:62;-1:-1:-1;;;7193:18:114;;;7186:42;7245:19;;8023:73:78;7036:234:114;8023:73:78;8106:13;8122:34;8148:7;8122:25;:34::i;:::-;8106:50;;8185:5;-1:-1:-1;;;;;8174:16:78;:7;-1:-1:-1;;;;;8174:16:78;;:51;;;;8218:7;-1:-1:-1;;;;;8194:31:78;:20;8206:7;8194:11;:20::i;:::-;-1:-1:-1;;;;;8194:31:78;;8174:51;:87;;;-1:-1:-1;;;;;;5094:25:78;;;5071:4;5094:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;8229:32;8166:96;7914:355;-1:-1:-1;;;;7914:355:78:o;10946:616::-;11111:4;-1:-1:-1;;;;;11073:42:78;:34;11099:7;11073:25;:34::i;:::-;-1:-1:-1;;;;;11073:42:78;;11065:92;;;;-1:-1:-1;;;11065:92:78;;5899:2:114;11065:92:78;;;5881:21:114;5938:2;5918:18;;;5911:30;5977:34;5957:18;;;5950:62;-1:-1:-1;;;6028:18:114;;;6021:35;6073:19;;11065:92:78;5871:227:114;11065:92:78;-1:-1:-1;;;;;11175:16:78;;11167:65;;;;-1:-1:-1;;;11167:65:78;;6305:2:114;11167:65:78;;;6287:21:114;6344:2;6324:18;;;6317:30;6383:34;6363:18;;;6356:62;-1:-1:-1;;;6434:18:114;;;6427:34;6478:19;;11167:65:78;6277:226:114;11167:65:78;11344:29;11361:1;11365:7;11344:8;:29::i;:::-;-1:-1:-1;;;;;11384:15:78;;;;;;:9;:15;;;;;:20;;11403:1;;11384:15;:20;;11403:1;;11384:20;:::i;:::-;;;;-1:-1:-1;;;;;;;11414:13:78;;;;;;:9;:13;;;;;:18;;11431:1;;11414:13;:18;;11431:1;;11414:18;:::i;:::-;;;;-1:-1:-1;;11442:16:78;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;11442:21:78;-1:-1:-1;;;;;11442:21:78;;;;;;;;;11479:27;;11442:16;;11479:27;;;;;;;4068:342;3998:412;;:::o;11990:307::-;12140:8;-1:-1:-1;;;;;12131:17:78;:5;-1:-1:-1;;;;;12131:17:78;;;12123:55;;;;-1:-1:-1;;;12123:55:78;;6710:2:114;12123:55:78;;;6692:21:114;6749:2;6729:18;;;6722:30;6788:27;6768:18;;;6761:55;6833:18;;12123:55:78;6682:175:114;12123:55:78;-1:-1:-1;;;;;12188:25:78;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;12188:46:78;;;;;;;;;;12249:41;;5002::114;;;12249::78;;4975:18:114;12249:41:78;;;;;;;11990:307;;;:::o;7021:::-;7172:28;7182:4;7188:2;7192:7;7172:9;:28::i;:::-;7218:48;7241:4;7247:2;7251:7;7260:5;7218:22;:48::i;:::-;7210:111;;;;-1:-1:-1;;;7210:111:78;;;;;;;:::i;339:703:86:-;395:13;612:10;608:51;;-1:-1:-1;;638:10:86;;;;;;;;;;;;-1:-1:-1;;;638:10:86;;;;;339:703::o;608:51::-;683:5;668:12;722:75;729:9;;722:75;;754:8;;;;:::i;:::-;;-1:-1:-1;776:10:86;;-1:-1:-1;784:2:86;776:10;;:::i;:::-;;;722:75;;;806:19;838:6;828:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;828:17:86;;806:39;;855:150;862:10;;855:150;;888:11;898:1;888:11;;:::i;:::-;;-1:-1:-1;956:10:86;964:2;956:5;:10;:::i;:::-;943:24;;:2;:24;:::i;:::-;930:39;;913:6;920;913:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;913:56:86;;;;;;;;-1:-1:-1;983:11:86;992:2;983:11;;:::i;:::-;;;855:150;;12850:800:78;13000:4;-1:-1:-1;;;;;13020:13:78;;1476:19:82;:23;13016:628:78;;13055:83;;-1:-1:-1;;;13055:83:78;;-1:-1:-1;;;;;13055:47:78;;;;;:83;;929:10:83;;13117:4:78;;13123:7;;13132:5;;13055:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13055:83:78;;;;;;;;-1:-1:-1;;13055:83:78;;;;;;;;;;;;:::i;:::-;;;13051:541;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13316:13:78;;13312:266;;13358:60;;-1:-1:-1;;;13358:60:78;;;;;;;:::i;13312:266::-;13530:6;13524:13;13515:6;13511:2;13507:15;13500:38;13051:541;-1:-1:-1;;;;;;13188:62:78;-1:-1:-1;;;13188:62:78;;-1:-1:-1;13181:69:78;;13016:628;-1:-1:-1;13629:4:78;12850:800;;;;;;:::o;14:173:114:-;82:20;;-1:-1:-1;;;;;131:31:114;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;320:1;317;310:12;272:2;343:29;362:9;343:29;:::i;383:260::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:2;;;528:1;525;518:12;480:2;551:29;570:9;551:29;:::i;:::-;541:39;;599:38;633:2;622:9;618:18;599:38;:::i;:::-;589:48;;470:173;;;;;:::o;648:328::-;725:6;733;741;794:2;782:9;773:7;769:23;765:32;762:2;;;810:1;807;800:12;762:2;833:29;852:9;833:29;:::i;:::-;823:39;;881:38;915:2;904:9;900:18;881:38;:::i;:::-;871:48;;966:2;955:9;951:18;938:32;928:42;;752:224;;;;;:::o;981:1138::-;1076:6;1084;1092;1100;1153:3;1141:9;1132:7;1128:23;1124:33;1121:2;;;1170:1;1167;1160:12;1121:2;1193:29;1212:9;1193:29;:::i;:::-;1183:39;;1241:38;1275:2;1264:9;1260:18;1241:38;:::i;:::-;1231:48;;1326:2;1315:9;1311:18;1298:32;1288:42;;1381:2;1370:9;1366:18;1353:32;1404:18;1445:2;1437:6;1434:14;1431:2;;;1461:1;1458;1451:12;1431:2;1499:6;1488:9;1484:22;1474:32;;1544:7;1537:4;1533:2;1529:13;1525:27;1515:2;;1566:1;1563;1556:12;1515:2;1602;1589:16;1624:2;1620;1617:10;1614:2;;;1630:18;;:::i;:::-;1705:2;1699:9;1673:2;1759:13;;-1:-1:-1;;1755:22:114;;;1779:2;1751:31;1747:40;1735:53;;;1803:18;;;1823:22;;;1800:46;1797:2;;;1849:18;;:::i;:::-;1889:10;1885:2;1878:22;1924:2;1916:6;1909:18;1964:7;1959:2;1954;1950;1946:11;1942:20;1939:33;1936:2;;;1985:1;1982;1975:12;1936:2;2041;2036;2032;2028:11;2023:2;2015:6;2011:15;1998:46;2086:1;2081:2;2076;2068:6;2064:15;2060:24;2053:35;2107:6;2097:16;;;;;;;1111:1008;;;;;;;:::o;2124:347::-;2189:6;2197;2250:2;2238:9;2229:7;2225:23;2221:32;2218:2;;;2266:1;2263;2256:12;2218:2;2289:29;2308:9;2289:29;:::i;:::-;2279:39;;2368:2;2357:9;2353:18;2340:32;2415:5;2408:13;2401:21;2394:5;2391:32;2381:2;;2437:1;2434;2427:12;2381:2;2460:5;2450:15;;;2208:263;;;;;:::o;2476:254::-;2544:6;2552;2605:2;2593:9;2584:7;2580:23;2576:32;2573:2;;;2621:1;2618;2611:12;2573:2;2644:29;2663:9;2644:29;:::i;:::-;2634:39;2720:2;2705:18;;;;2692:32;;-1:-1:-1;;;2563:167:114:o;2735:245::-;2793:6;2846:2;2834:9;2825:7;2821:23;2817:32;2814:2;;;2862:1;2859;2852:12;2814:2;2901:9;2888:23;2920:30;2944:5;2920:30;:::i;2985:249::-;3054:6;3107:2;3095:9;3086:7;3082:23;3078:32;3075:2;;;3123:1;3120;3113:12;3075:2;3155:9;3149:16;3174:30;3198:5;3174:30;:::i;3239:180::-;3298:6;3351:2;3339:9;3330:7;3326:23;3322:32;3319:2;;;3367:1;3364;3357:12;3319:2;-1:-1:-1;3390:23:114;;3309:110;-1:-1:-1;3309:110:114:o;3424:257::-;3465:3;3503:5;3497:12;3530:6;3525:3;3518:19;3546:63;3602:6;3595:4;3590:3;3586:14;3579:4;3572:5;3568:16;3546:63;:::i;:::-;3663:2;3642:15;-1:-1:-1;;3638:29:114;3629:39;;;;3670:4;3625:50;;3473:208;-1:-1:-1;;3473:208:114:o;3686:470::-;3865:3;3903:6;3897:13;3919:53;3965:6;3960:3;3953:4;3945:6;3941:17;3919:53;:::i;:::-;4035:13;;3994:16;;;;4057:57;4035:13;3994:16;4091:4;4079:17;;4057:57;:::i;:::-;4130:20;;3873:283;-1:-1:-1;;;;3873:283:114:o;4369:488::-;-1:-1:-1;;;;;4638:15:114;;;4620:34;;4690:15;;4685:2;4670:18;;4663:43;4737:2;4722:18;;4715:34;;;4785:3;4780:2;4765:18;;4758:31;;;4563:4;;4806:45;;4831:19;;4823:6;4806:45;:::i;:::-;4798:53;4572:285;-1:-1:-1;;;;;;4572:285:114:o;5054:219::-;5203:2;5192:9;5185:21;5166:4;5223:44;5263:2;5252:9;5248:18;5240:6;5223:44;:::i;5278:414::-;5480:2;5462:21;;;5519:2;5499:18;;;5492:30;5558:34;5553:2;5538:18;;5531:62;-1:-1:-1;;;5624:2:114;5609:18;;5602:48;5682:3;5667:19;;5452:240::o;9752:413::-;9954:2;9936:21;;;9993:2;9973:18;;;9966:30;10032:34;10027:2;10012:18;;10005:62;-1:-1:-1;;;10098:2:114;10083:18;;10076:47;10155:3;10140:19;;9926:239::o;10352:128::-;10392:3;10423:1;10419:6;10416:1;10413:13;10410:2;;;10429:18;;:::i;:::-;-1:-1:-1;10465:9:114;;10400:80::o;10485:120::-;10525:1;10551;10541:2;;10556:18;;:::i;:::-;-1:-1:-1;10590:9:114;;10531:74::o;10610:125::-;10650:4;10678:1;10675;10672:8;10669:2;;;10683:18;;:::i;:::-;-1:-1:-1;10720:9:114;;10659:76::o;10740:258::-;10812:1;10822:113;10836:6;10833:1;10830:13;10822:113;;;10912:11;;;10906:18;10893:11;;;10886:39;10858:2;10851:10;10822:113;;;10953:6;10950:1;10947:13;10944:2;;;-1:-1:-1;;10988:1:114;10970:16;;10963:27;10793:205::o;11003:380::-;11082:1;11078:12;;;;11125;;;11146:2;;11200:4;11192:6;11188:17;11178:27;;11146:2;11253;11245:6;11242:14;11222:18;11219:38;11216:2;;;11299:10;11294:3;11290:20;11287:1;11280:31;11334:4;11331:1;11324:15;11362:4;11359:1;11352:15;11216:2;;11058:325;;;:::o;11388:135::-;11427:3;-1:-1:-1;;11448:17:114;;11445:2;;;11468:18;;:::i;:::-;-1:-1:-1;11515:1:114;11504:13;;11435:88::o;11528:112::-;11560:1;11586;11576:2;;11591:18;;:::i;:::-;-1:-1:-1;11625:9:114;;11566:74::o;11645:127::-;11706:10;11701:3;11697:20;11694:1;11687:31;11737:4;11734:1;11727:15;11761:4;11758:1;11751:15;11777:127;11838:10;11833:3;11829:20;11826:1;11819:31;11869:4;11866:1;11859:15;11893:4;11890:1;11883:15;11909:127;11970:10;11965:3;11961:20;11958:1;11951:31;12001:4;11998:1;11991:15;12025:4;12022:1;12015:15;12041:127;12102:10;12097:3;12093:20;12090:1;12083:31;12133:4;12130:1;12123:15;12157:4;12154:1;12147:15;12173:131;-1:-1:-1;;;;;;12247:32:114;;12237:43;;12227:2;;12294:1;12291;12284:12;12227:2;12217:87;:::o",
  "language": "Solidity",
  "natspec": {
    "details": "Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.",
    "kind": "dev",
    "methods": {
      "approve(address,uint256)": {
        "details": "See {IERC721-approve}."
      },
      "balanceOf(address)": {
        "details": "See {IERC721-balanceOf}."
      },
      "getApproved(uint256)": {
        "details": "See {IERC721-getApproved}."
      },
      "isApprovedForAll(address,address)": {
        "details": "See {IERC721-isApprovedForAll}."
      },
      "name()": {
        "details": "See {IERC721Metadata-name}."
      },
      "ownerOf(uint256)": {
        "details": "See {IERC721-ownerOf}."
      },
      "safeTransferFrom(address,address,uint256)": {
        "details": "See {IERC721-safeTransferFrom}."
      },
      "safeTransferFrom(address,address,uint256,bytes)": {
        "details": "See {IERC721-safeTransferFrom}."
      },
      "setApprovalForAll(address,bool)": {
        "details": "See {IERC721-setApprovalForAll}."
      },
      "supportsInterface(bytes4)": {
        "details": "See {IERC165-supportsInterface}."
      },
      "symbol()": {
        "details": "See {IERC721Metadata-symbol}."
      },
      "tokenURI(uint256)": {
        "details": "See {IERC721Metadata-tokenURI}."
      },
      "transferFrom(address,address,uint256)": {
        "details": "See {IERC721-transferFrom}."
      }
    },
    "stateVariables": {
      "__gap": {
        "details": "This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"
      }
    },
    "version": 1
  },
  "offset": [
    751,
    15114
  ],
  "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x164 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE7 PUSH2 0xE2 CALLDATASIZE PUSH1 0x4 PUSH2 0xF3A JUMP JUMPDEST PUSH2 0x228 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH2 0x27A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0x1025 JUMP JUMPDEST PUSH2 0x124 PUSH2 0x11F CALLDATASIZE PUSH1 0x4 PUSH2 0xF74 JUMP JUMPDEST PUSH2 0x30C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x14A CALLDATASIZE PUSH1 0x4 PUSH2 0xF10 JUMP JUMPDEST PUSH2 0x3A6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14F PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0xDBC JUMP JUMPDEST PUSH2 0x4BC JUMP JUMPDEST PUSH2 0x14F PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0xDBC JUMP JUMPDEST PUSH2 0x4ED JUMP JUMPDEST PUSH2 0x124 PUSH2 0x185 CALLDATASIZE PUSH1 0x4 PUSH2 0xF74 JUMP JUMPDEST PUSH2 0x508 JUMP JUMPDEST PUSH2 0x19D PUSH2 0x198 CALLDATASIZE PUSH1 0x4 PUSH2 0xD6E JUMP JUMPDEST PUSH2 0x57F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x104 PUSH2 0x606 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0xED4 JUMP JUMPDEST PUSH2 0x615 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1D4 CALLDATASIZE PUSH1 0x4 PUSH2 0xDF8 JUMP JUMPDEST PUSH2 0x624 JUMP JUMPDEST PUSH2 0x104 PUSH2 0x1E7 CALLDATASIZE PUSH1 0x4 PUSH2 0xF74 JUMP JUMPDEST PUSH2 0x65C JUMP JUMPDEST PUSH2 0xE7 PUSH2 0x1FA CALLDATASIZE PUSH1 0x4 PUSH2 0xD89 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x259 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x274 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x65 DUP1 SLOAD PUSH2 0x289 SWAP1 PUSH2 0x114A 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 0x2B5 SWAP1 PUSH2 0x114A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x302 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x302 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 0x2E5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x38A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76656420717565727920666F72206E6F6E6578 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x34B9BA32B73A103A37B5B2B7 PUSH1 0xA1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B1 DUP3 PUSH2 0x508 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x41F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x381 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x43B JUMPI POP PUSH2 0x43B DUP2 CALLER PUSH2 0x1FA JUMP JUMPDEST PUSH2 0x4AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F74206F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6572206E6F7220617070726F76656420666F7220616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x381 JUMP JUMPDEST PUSH2 0x4B7 DUP4 DUP4 PUSH2 0x744 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x4C6 CALLER DUP3 PUSH2 0x7B2 JUMP JUMPDEST PUSH2 0x4E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x381 SWAP1 PUSH2 0x108A JUMP JUMPDEST PUSH2 0x4B7 DUP4 DUP4 DUP4 PUSH2 0x8A9 JUMP JUMPDEST PUSH2 0x4B7 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x624 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x274 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206F776E657220717565727920666F72206E6F6E6578697374 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x32B73A103A37B5B2B7 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x381 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2062616C616E636520717565727920666F7220746865207A65 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x726F2061646472657373 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x381 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x68 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x66 DUP1 SLOAD PUSH2 0x289 SWAP1 PUSH2 0x114A JUMP JUMPDEST PUSH2 0x620 CALLER DUP4 DUP4 PUSH2 0xA45 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x62E CALLER DUP4 PUSH2 0x7B2 JUMP JUMPDEST PUSH2 0x64A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x381 SWAP1 PUSH2 0x108A JUMP JUMPDEST PUSH2 0x656 DUP5 DUP5 DUP5 DUP5 PUSH2 0xB14 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x6DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732314D657461646174613A2055524920717565727920666F72206E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x3732BC34B9BA32B73A103A37B5B2B7 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x381 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6F2 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x712 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x73D JUMP JUMPDEST DUP1 PUSH2 0x71C DUP5 PUSH2 0xB47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x72D SWAP3 SWAP2 SWAP1 PUSH2 0xFB9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x779 DUP3 PUSH2 0x508 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x82B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206F70657261746F7220717565727920666F72206E6F6E6578 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x34B9BA32B73A103A37B5B2B7 PUSH1 0xA1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x381 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x836 DUP4 PUSH2 0x508 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x871 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x866 DUP5 PUSH2 0x30C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST DUP1 PUSH2 0x8A1 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x8BC DUP3 PUSH2 0x508 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x920 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 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x381 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x982 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 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x381 JUMP JUMPDEST PUSH2 0x98D PUSH1 0x0 DUP3 PUSH2 0x744 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x68 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x9B6 SWAP1 DUP5 SWAP1 PUSH2 0x1107 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x68 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x9E4 SWAP1 DUP5 SWAP1 PUSH2 0x10DB JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP5 SWAP4 SWAP2 DUP8 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0xAA7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x381 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0xB1F DUP5 DUP5 DUP5 PUSH2 0x8A9 JUMP JUMPDEST PUSH2 0xB2B DUP5 DUP5 DUP5 DUP5 PUSH2 0xC45 JUMP JUMPDEST PUSH2 0x656 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x381 SWAP1 PUSH2 0x1038 JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0xB6B JUMPI POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0xB95 JUMPI DUP1 PUSH2 0xB7F DUP2 PUSH2 0x1185 JUMP JUMPDEST SWAP2 POP PUSH2 0xB8E SWAP1 POP PUSH1 0xA DUP4 PUSH2 0x10F3 JUMP JUMPDEST SWAP2 POP PUSH2 0xB6F JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBB0 JUMPI PUSH2 0xBB0 PUSH2 0x11F6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xBDA JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP JUMPDEST DUP5 ISZERO PUSH2 0x8A1 JUMPI PUSH2 0xBEF PUSH1 0x1 DUP4 PUSH2 0x1107 JUMP JUMPDEST SWAP2 POP PUSH2 0xBFC PUSH1 0xA DUP7 PUSH2 0x11A0 JUMP JUMPDEST PUSH2 0xC07 SWAP1 PUSH1 0x30 PUSH2 0x10DB JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xC1C JUMPI PUSH2 0xC1C PUSH2 0x11E0 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH2 0xC3E PUSH1 0xA DUP7 PUSH2 0x10F3 JUMP JUMPDEST SWAP5 POP PUSH2 0xBDE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0xD47 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xC89 SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0xFE8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xCD3 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xCD0 SWAP2 DUP2 ADD SWAP1 PUSH2 0xF57 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xD2D JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xD01 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xD06 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH2 0xD25 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x381 SWAP1 PUSH2 0x1038 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0x8A1 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x73D DUP3 PUSH2 0xD52 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDA5 DUP4 PUSH2 0xD52 JUMP JUMPDEST SWAP2 POP PUSH2 0xDB3 PUSH1 0x20 DUP5 ADD PUSH2 0xD52 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xDD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDDA DUP5 PUSH2 0xD52 JUMP JUMPDEST SWAP3 POP PUSH2 0xDE8 PUSH1 0x20 DUP6 ADD PUSH2 0xD52 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xE0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE17 DUP6 PUSH2 0xD52 JUMP JUMPDEST SWAP4 POP PUSH2 0xE25 PUSH1 0x20 DUP7 ADD PUSH2 0xD52 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xE49 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xE5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xE6F JUMPI PUSH2 0xE6F PUSH2 0x11F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xE97 JUMPI PUSH2 0xE97 PUSH2 0x11F6 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xEB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEF0 DUP4 PUSH2 0xD52 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xF05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF2C DUP4 PUSH2 0xD52 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x73D DUP2 PUSH2 0x120C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x73D DUP2 PUSH2 0x120C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xFA5 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x111E JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0xFCB DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x111E JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0xFDF DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x111E JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x101B SWAP1 DUP4 ADD DUP5 PUSH2 0xF8D JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x73D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF8D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x31 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722063616C6C6572206973206E6F74206F PUSH1 0x40 DUP3 ADD MSTORE PUSH17 0x1DDB995C881B9BDC88185C1C1C9BDD9959 PUSH1 0x7A SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x10EE JUMPI PUSH2 0x10EE PUSH2 0x11B4 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1102 JUMPI PUSH2 0x1102 PUSH2 0x11CA JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1119 JUMPI PUSH2 0x1119 PUSH2 0x11B4 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1139 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1121 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x656 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x115E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x117F 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 PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x1199 JUMPI PUSH2 0x1199 PUSH2 0x11B4 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x11AF JUMPI PUSH2 0x11AF PUSH2 0x11CA JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1222 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP15 0xB1 DUP3 PUSH3 0xE4373E 0xAE SELFDESTRUCT 0xCC PUSH2 0x2587 ISZERO 0xBD PUSH32 0x80632E4AD9A43750915E75B5662740FC64736F6C634300080600330000000000 ",
  "pcMap": {
    "0": {
      "offset": [
        751,
        15114
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x80"
    },
    "2": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "4": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "5": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "CALLVALUE",
      "path": "78"
    },
    "6": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "DUP1",
      "path": "78"
    },
    "7": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "ISZERO",
      "path": "78"
    },
    "8": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x10"
    },
    "11": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "12": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "14": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "DUP1",
      "path": "78"
    },
    "15": {
      "dev": "Cannot send ether to nonpayable function",
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "REVERT",
      "path": "78"
    },
    "16": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "17": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "POP",
      "path": "78"
    },
    "18": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "20": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "CALLDATASIZE",
      "path": "78"
    },
    "21": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "LT",
      "path": "78"
    },
    "22": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xCF"
    },
    "25": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "26": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "28": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "CALLDATALOAD",
      "path": "78"
    },
    "29": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0xE0"
    },
    "31": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "SHR",
      "path": "78"
    },
    "32": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "DUP1",
      "path": "78"
    },
    "33": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH4",
      "path": "78",
      "value": "0x6352211E"
    },
    "38": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "GT",
      "path": "78"
    },
    "39": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x8C"
    },
    "42": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "43": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "DUP1",
      "path": "78"
    },
    "44": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH4",
      "path": "78",
      "value": "0xA22CB465"
    },
    "49": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "GT",
      "path": "78"
    },
    "50": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x66"
    },
    "53": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "54": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "DUP1",
      "path": "78"
    },
    "55": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH4",
      "path": "78",
      "value": "0xA22CB465"
    },
    "60": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "EQ",
      "path": "78"
    },
    "61": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x1B3"
    },
    "64": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "65": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "DUP1",
      "path": "78"
    },
    "66": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH4",
      "path": "78",
      "value": "0xB88D4FDE"
    },
    "71": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "EQ",
      "path": "78"
    },
    "72": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x1C6"
    },
    "75": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "76": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "DUP1",
      "path": "78"
    },
    "77": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH4",
      "path": "78",
      "value": "0xC87B56DD"
    },
    "82": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "EQ",
      "path": "78"
    },
    "83": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x1D9"
    },
    "86": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "87": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "DUP1",
      "path": "78"
    },
    "88": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH4",
      "path": "78",
      "value": "0xE985E9C5"
    },
    "93": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "EQ",
      "path": "78"
    },
    "94": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x1EC"
    },
    "97": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "98": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "100": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "DUP1",
      "path": "78"
    },
    "101": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "REVERT",
      "path": "78"
    },
    "102": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "103": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "DUP1",
      "path": "78"
    },
    "104": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH4",
      "path": "78",
      "value": "0x6352211E"
    },
    "109": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "EQ",
      "path": "78"
    },
    "110": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x177"
    },
    "113": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "114": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "DUP1",
      "path": "78"
    },
    "115": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH4",
      "path": "78",
      "value": "0x70A08231"
    },
    "120": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "EQ",
      "path": "78"
    },
    "121": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x18A"
    },
    "124": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "125": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "DUP1",
      "path": "78"
    },
    "126": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH4",
      "path": "78",
      "value": "0x95D89B41"
    },
    "131": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "EQ",
      "path": "78"
    },
    "132": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x1AB"
    },
    "135": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "136": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "138": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "DUP1",
      "path": "78"
    },
    "139": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "REVERT",
      "path": "78"
    },
    "140": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "141": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "DUP1",
      "path": "78"
    },
    "142": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH4",
      "path": "78",
      "value": "0x1FFC9A7"
    },
    "147": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "EQ",
      "path": "78"
    },
    "148": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xD4"
    },
    "151": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "152": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "DUP1",
      "path": "78"
    },
    "153": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH4",
      "path": "78",
      "value": "0x6FDDE03"
    },
    "158": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "EQ",
      "path": "78"
    },
    "159": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xFC"
    },
    "162": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "163": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "DUP1",
      "path": "78"
    },
    "164": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH4",
      "path": "78",
      "value": "0x81812FC"
    },
    "169": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "EQ",
      "path": "78"
    },
    "170": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x111"
    },
    "173": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "174": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "DUP1",
      "path": "78"
    },
    "175": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH4",
      "path": "78",
      "value": "0x95EA7B3"
    },
    "180": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "EQ",
      "path": "78"
    },
    "181": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x13C"
    },
    "184": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "185": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "DUP1",
      "path": "78"
    },
    "186": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH4",
      "path": "78",
      "value": "0x23B872DD"
    },
    "191": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "EQ",
      "path": "78"
    },
    "192": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x151"
    },
    "195": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "196": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "DUP1",
      "path": "78"
    },
    "197": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH4",
      "path": "78",
      "value": "0x42842E0E"
    },
    "202": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "EQ",
      "path": "78"
    },
    "203": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x164"
    },
    "206": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "207": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "208": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "210": {
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "DUP1",
      "path": "78"
    },
    "211": {
      "first_revert": true,
      "fn": null,
      "offset": [
        751,
        15114
      ],
      "op": "REVERT",
      "path": "78"
    },
    "212": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "213": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xE7"
    },
    "216": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xE2"
    },
    "219": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "CALLDATASIZE",
      "path": "78"
    },
    "220": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "222": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xF3A"
    },
    "225": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "jump": "i",
      "offset": [
        1987,
        2331
      ],
      "op": "JUMP",
      "path": "78"
    },
    "226": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "227": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x228"
    },
    "230": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "jump": "i",
      "offset": [
        1987,
        2331
      ],
      "op": "JUMP",
      "path": "78"
    },
    "231": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "232": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "234": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "235": {
      "op": "SWAP1"
    },
    "236": {
      "op": "ISZERO"
    },
    "237": {
      "op": "ISZERO"
    },
    "238": {
      "op": "DUP2"
    },
    "239": {
      "op": "MSTORE"
    },
    "240": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "242": {
      "op": "ADD"
    },
    "243": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "244": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "246": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "247": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "DUP1",
      "path": "78"
    },
    "248": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "249": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "SUB",
      "path": "78"
    },
    "250": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "251": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "RETURN",
      "path": "78"
    },
    "252": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        2949,
        3047
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "253": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        2949,
        3047
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x104"
    },
    "256": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        2949,
        3047
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x27A"
    },
    "259": {
      "fn": "ERC721Upgradeable.name",
      "jump": "i",
      "offset": [
        2949,
        3047
      ],
      "op": "JUMP",
      "path": "78"
    },
    "260": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        2949,
        3047
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "261": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        2949,
        3047
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "263": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        2949,
        3047
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "264": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        2949,
        3047
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xF3"
    },
    "267": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        2949,
        3047
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "268": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        2949,
        3047
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "269": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        2949,
        3047
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x1025"
    },
    "272": {
      "fn": "ERC721Upgradeable.name",
      "jump": "i",
      "offset": [
        2949,
        3047
      ],
      "op": "JUMP",
      "path": "78"
    },
    "273": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4471,
        4688
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "274": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4471,
        4688
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x124"
    },
    "277": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4471,
        4688
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x11F"
    },
    "280": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4471,
        4688
      ],
      "op": "CALLDATASIZE",
      "path": "78"
    },
    "281": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4471,
        4688
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "283": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4471,
        4688
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xF74"
    },
    "286": {
      "fn": "ERC721Upgradeable.getApproved",
      "jump": "i",
      "offset": [
        4471,
        4688
      ],
      "op": "JUMP",
      "path": "78"
    },
    "287": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4471,
        4688
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "288": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4471,
        4688
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x30C"
    },
    "291": {
      "fn": "ERC721Upgradeable.getApproved",
      "jump": "i",
      "offset": [
        4471,
        4688
      ],
      "op": "JUMP",
      "path": "78"
    },
    "292": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4471,
        4688
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "293": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4471,
        4688
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "295": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4471,
        4688
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "296": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "298": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "300": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "302": {
      "op": "SHL"
    },
    "303": {
      "op": "SUB"
    },
    "304": {
      "op": "SWAP1"
    },
    "305": {
      "op": "SWAP2"
    },
    "306": {
      "op": "AND"
    },
    "307": {
      "op": "DUP2"
    },
    "308": {
      "op": "MSTORE"
    },
    "309": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "311": {
      "op": "ADD"
    },
    "312": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4471,
        4688
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xF3"
    },
    "315": {
      "op": "JUMP"
    },
    "316": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        3998,
        4410
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "317": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        3998,
        4410
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x14F"
    },
    "320": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        3998,
        4410
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x14A"
    },
    "323": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        3998,
        4410
      ],
      "op": "CALLDATASIZE",
      "path": "78"
    },
    "324": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        3998,
        4410
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "326": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        3998,
        4410
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xF10"
    },
    "329": {
      "fn": "ERC721Upgradeable.approve",
      "jump": "i",
      "offset": [
        3998,
        4410
      ],
      "op": "JUMP",
      "path": "78"
    },
    "330": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        3998,
        4410
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "331": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        3998,
        4410
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x3A6"
    },
    "334": {
      "fn": "ERC721Upgradeable.approve",
      "jump": "i",
      "offset": [
        3998,
        4410
      ],
      "op": "JUMP",
      "path": "78"
    },
    "335": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        3998,
        4410
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "336": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        3998,
        4410
      ],
      "op": "STOP",
      "path": "78"
    },
    "337": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5198,
        5528
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "338": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5198,
        5528
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x14F"
    },
    "341": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5198,
        5528
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x15F"
    },
    "344": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5198,
        5528
      ],
      "op": "CALLDATASIZE",
      "path": "78"
    },
    "345": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5198,
        5528
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "347": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5198,
        5528
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xDBC"
    },
    "350": {
      "fn": "ERC721Upgradeable.transferFrom",
      "jump": "i",
      "offset": [
        5198,
        5528
      ],
      "op": "JUMP",
      "path": "78"
    },
    "351": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5198,
        5528
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "352": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5198,
        5528
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x4BC"
    },
    "355": {
      "fn": "ERC721Upgradeable.transferFrom",
      "jump": "i",
      "offset": [
        5198,
        5528
      ],
      "op": "JUMP",
      "path": "78"
    },
    "356": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5594,
        5773
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "357": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5594,
        5773
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x14F"
    },
    "360": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5594,
        5773
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x172"
    },
    "363": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5594,
        5773
      ],
      "op": "CALLDATASIZE",
      "path": "78"
    },
    "364": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5594,
        5773
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "366": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5594,
        5773
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xDBC"
    },
    "369": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "jump": "i",
      "offset": [
        5594,
        5773
      ],
      "op": "JUMP",
      "path": "78"
    },
    "370": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5594,
        5773
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "371": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5594,
        5773
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x4ED"
    },
    "374": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "jump": "i",
      "offset": [
        5594,
        5773
      ],
      "op": "JUMP",
      "path": "78"
    },
    "375": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2652,
        2887
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "376": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2652,
        2887
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x124"
    },
    "379": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2652,
        2887
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x185"
    },
    "382": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2652,
        2887
      ],
      "op": "CALLDATASIZE",
      "path": "78"
    },
    "383": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2652,
        2887
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "385": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2652,
        2887
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xF74"
    },
    "388": {
      "fn": "ERC721Upgradeable.ownerOf",
      "jump": "i",
      "offset": [
        2652,
        2887
      ],
      "op": "JUMP",
      "path": "78"
    },
    "389": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2652,
        2887
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "390": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2652,
        2887
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x508"
    },
    "393": {
      "fn": "ERC721Upgradeable.ownerOf",
      "jump": "i",
      "offset": [
        2652,
        2887
      ],
      "op": "JUMP",
      "path": "78"
    },
    "394": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2390,
        2595
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "395": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2390,
        2595
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x19D"
    },
    "398": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2390,
        2595
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x198"
    },
    "401": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2390,
        2595
      ],
      "op": "CALLDATASIZE",
      "path": "78"
    },
    "402": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2390,
        2595
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "404": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2390,
        2595
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xD6E"
    },
    "407": {
      "fn": "ERC721Upgradeable.balanceOf",
      "jump": "i",
      "offset": [
        2390,
        2595
      ],
      "op": "JUMP",
      "path": "78"
    },
    "408": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2390,
        2595
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "409": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2390,
        2595
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x57F"
    },
    "412": {
      "fn": "ERC721Upgradeable.balanceOf",
      "jump": "i",
      "offset": [
        2390,
        2595
      ],
      "op": "JUMP",
      "path": "78"
    },
    "413": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2390,
        2595
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "414": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2390,
        2595
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "416": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2390,
        2595
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "417": {
      "op": "SWAP1"
    },
    "418": {
      "op": "DUP2"
    },
    "419": {
      "op": "MSTORE"
    },
    "420": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "422": {
      "op": "ADD"
    },
    "423": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2390,
        2595
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xF3"
    },
    "426": {
      "op": "JUMP"
    },
    "427": {
      "fn": "ERC721Upgradeable.symbol",
      "offset": [
        3111,
        3213
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "428": {
      "fn": "ERC721Upgradeable.symbol",
      "offset": [
        3111,
        3213
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x104"
    },
    "431": {
      "fn": "ERC721Upgradeable.symbol",
      "offset": [
        3111,
        3213
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x606"
    },
    "434": {
      "fn": "ERC721Upgradeable.symbol",
      "jump": "i",
      "offset": [
        3111,
        3213
      ],
      "op": "JUMP",
      "path": "78"
    },
    "435": {
      "fn": "ERC721Upgradeable.setApprovalForAll",
      "offset": [
        4755,
        4908
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "436": {
      "fn": "ERC721Upgradeable.setApprovalForAll",
      "offset": [
        4755,
        4908
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x14F"
    },
    "439": {
      "fn": "ERC721Upgradeable.setApprovalForAll",
      "offset": [
        4755,
        4908
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x1C1"
    },
    "442": {
      "fn": "ERC721Upgradeable.setApprovalForAll",
      "offset": [
        4755,
        4908
      ],
      "op": "CALLDATASIZE",
      "path": "78"
    },
    "443": {
      "fn": "ERC721Upgradeable.setApprovalForAll",
      "offset": [
        4755,
        4908
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "445": {
      "fn": "ERC721Upgradeable.setApprovalForAll",
      "offset": [
        4755,
        4908
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xED4"
    },
    "448": {
      "fn": "ERC721Upgradeable.setApprovalForAll",
      "jump": "i",
      "offset": [
        4755,
        4908
      ],
      "op": "JUMP",
      "path": "78"
    },
    "449": {
      "fn": "ERC721Upgradeable.setApprovalForAll",
      "offset": [
        4755,
        4908
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "450": {
      "fn": "ERC721Upgradeable.setApprovalForAll",
      "offset": [
        4755,
        4908
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x615"
    },
    "453": {
      "fn": "ERC721Upgradeable.setApprovalForAll",
      "jump": "i",
      "offset": [
        4755,
        4908
      ],
      "op": "JUMP",
      "path": "78"
    },
    "454": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5839,
        6159
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "455": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5839,
        6159
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x14F"
    },
    "458": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5839,
        6159
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x1D4"
    },
    "461": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5839,
        6159
      ],
      "op": "CALLDATASIZE",
      "path": "78"
    },
    "462": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5839,
        6159
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "464": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5839,
        6159
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xDF8"
    },
    "467": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "jump": "i",
      "offset": [
        5839,
        6159
      ],
      "op": "JUMP",
      "path": "78"
    },
    "468": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5839,
        6159
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "469": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5839,
        6159
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x624"
    },
    "472": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "jump": "i",
      "offset": [
        5839,
        6159
      ],
      "op": "JUMP",
      "path": "78"
    },
    "473": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3279,
        3608
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "474": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3279,
        3608
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x104"
    },
    "477": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3279,
        3608
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x1E7"
    },
    "480": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3279,
        3608
      ],
      "op": "CALLDATASIZE",
      "path": "78"
    },
    "481": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3279,
        3608
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "483": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3279,
        3608
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xF74"
    },
    "486": {
      "fn": "ERC721Upgradeable.tokenURI",
      "jump": "i",
      "offset": [
        3279,
        3608
      ],
      "op": "JUMP",
      "path": "78"
    },
    "487": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3279,
        3608
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "488": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3279,
        3608
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x65C"
    },
    "491": {
      "fn": "ERC721Upgradeable.tokenURI",
      "jump": "i",
      "offset": [
        3279,
        3608
      ],
      "op": "JUMP",
      "path": "78"
    },
    "492": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        4974,
        5136
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "493": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        4974,
        5136
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xE7"
    },
    "496": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        4974,
        5136
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x1FA"
    },
    "499": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        4974,
        5136
      ],
      "op": "CALLDATASIZE",
      "path": "78"
    },
    "500": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        4974,
        5136
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "502": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        4974,
        5136
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xD89"
    },
    "505": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "jump": "i",
      "offset": [
        4974,
        5136
      ],
      "op": "JUMP",
      "path": "78"
    },
    "506": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        4974,
        5136
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "507": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "509": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "511": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "513": {
      "op": "SHL"
    },
    "514": {
      "op": "SUB"
    },
    "515": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "SWAP2",
      "path": "78",
      "statement": 0
    },
    "516": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "DUP3",
      "path": "78"
    },
    "517": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "AND",
      "path": "78"
    },
    "518": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5071,
        5075
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "520": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "521": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "DUP2",
      "path": "78"
    },
    "522": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "523": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5112
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x6A"
    },
    "525": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "527": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "528": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "DUP2",
      "path": "78"
    },
    "529": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "530": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "532": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "DUP1",
      "path": "78"
    },
    "533": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "DUP4",
      "path": "78"
    },
    "534": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "KECCAK256",
      "path": "78"
    },
    "535": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "SWAP4",
      "path": "78"
    },
    "536": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "537": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "SWAP5",
      "path": "78"
    },
    "538": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "AND",
      "path": "78"
    },
    "539": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "DUP3",
      "path": "78"
    },
    "540": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "541": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "542": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "543": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "544": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "545": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "KECCAK256",
      "path": "78"
    },
    "546": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "SLOAD",
      "path": "78"
    },
    "547": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0xFF"
    },
    "549": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "AND",
      "path": "78"
    },
    "550": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "551": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        4974,
        5136
      ],
      "op": "JUMP",
      "path": "78"
    },
    "552": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "553": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        2111,
        2115
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "555": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "557": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "559": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "561": {
      "op": "SHL"
    },
    "562": {
      "op": "SUB"
    },
    "563": {
      "op": "NOT"
    },
    "564": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        2146,
        2197
      ],
      "op": "DUP3",
      "path": "78",
      "statement": 1
    },
    "565": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        2146,
        2197
      ],
      "op": "AND",
      "path": "78"
    },
    "566": {
      "op": "PUSH4",
      "value": "0x80AC58CD"
    },
    "571": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "573": {
      "op": "SHL"
    },
    "574": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        2146,
        2197
      ],
      "op": "EQ",
      "path": "78"
    },
    "575": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        2146,
        2197
      ],
      "op": "DUP1",
      "path": "78"
    },
    "576": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        2146,
        2272
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x259"
    },
    "579": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        2146,
        2272
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "580": {
      "op": "POP"
    },
    "581": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "583": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "585": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "587": {
      "op": "SHL"
    },
    "588": {
      "op": "SUB"
    },
    "589": {
      "op": "NOT"
    },
    "590": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        2213,
        2272
      ],
      "op": "DUP3",
      "path": "78"
    },
    "591": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        2213,
        2272
      ],
      "op": "AND",
      "path": "78"
    },
    "592": {
      "op": "PUSH4",
      "value": "0x5B5E139F"
    },
    "597": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "599": {
      "op": "SHL"
    },
    "600": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        2213,
        2272
      ],
      "op": "EQ",
      "path": "78"
    },
    "601": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        2146,
        2272
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "602": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        2146,
        2324
      ],
      "op": "DUP1",
      "path": "78"
    },
    "603": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        2146,
        2324
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x274"
    },
    "606": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        2146,
        2324
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "607": {
      "op": "POP"
    },
    "608": {
      "op": "PUSH4",
      "value": "0x1FFC9A7"
    },
    "613": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "615": {
      "op": "SHL"
    },
    "616": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "618": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "620": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "622": {
      "op": "SHL"
    },
    "623": {
      "op": "SUB"
    },
    "624": {
      "op": "NOT"
    },
    "625": {
      "fn": "ERC165Upgradeable.supportsInterface",
      "offset": [
        1168,
        1219
      ],
      "op": "DUP4",
      "path": "87",
      "statement": 2
    },
    "626": {
      "fn": "ERC165Upgradeable.supportsInterface",
      "offset": [
        1168,
        1219
      ],
      "op": "AND",
      "path": "87"
    },
    "627": {
      "fn": "ERC165Upgradeable.supportsInterface",
      "offset": [
        1168,
        1219
      ],
      "op": "EQ",
      "path": "87"
    },
    "628": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        2288,
        2324
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "629": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        2127,
        2324
      ],
      "op": "SWAP3",
      "path": "78"
    },
    "630": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "offset": [
        1987,
        2331
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "631": {
      "op": "POP"
    },
    "632": {
      "op": "POP"
    },
    "633": {
      "fn": "ERC721Upgradeable.supportsInterface",
      "jump": "o",
      "offset": [
        1987,
        2331
      ],
      "op": "JUMP",
      "path": "78"
    },
    "634": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        2949,
        3047
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "635": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3003,
        3016
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x60"
    },
    "637": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3035,
        3040
      ],
      "op": "PUSH1",
      "path": "78",
      "statement": 3,
      "value": "0x65"
    },
    "639": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP1",
      "path": "78"
    },
    "640": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SLOAD",
      "path": "78"
    },
    "641": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x289"
    },
    "644": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "645": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x114A"
    },
    "648": {
      "fn": "ERC721Upgradeable.name",
      "jump": "i",
      "offset": [
        3028,
        3040
      ],
      "op": "JUMP",
      "path": "78"
    },
    "649": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "650": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP1",
      "path": "78"
    },
    "651": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x1F"
    },
    "653": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "ADD",
      "path": "78"
    },
    "654": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "656": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP1",
      "path": "78"
    },
    "657": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "658": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DIV",
      "path": "78"
    },
    "659": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "MUL",
      "path": "78"
    },
    "660": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "662": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "ADD",
      "path": "78"
    },
    "663": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "665": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "666": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "667": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP2",
      "path": "78"
    },
    "668": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "ADD",
      "path": "78"
    },
    "669": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "671": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "672": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP1",
      "path": "78"
    },
    "673": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SWAP3",
      "path": "78"
    },
    "674": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "675": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "676": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP2",
      "path": "78"
    },
    "677": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP2",
      "path": "78"
    },
    "678": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "679": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "681": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "ADD",
      "path": "78"
    },
    "682": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP3",
      "path": "78"
    },
    "683": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP1",
      "path": "78"
    },
    "684": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SLOAD",
      "path": "78"
    },
    "685": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x2B5"
    },
    "688": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "689": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x114A"
    },
    "692": {
      "fn": "ERC721Upgradeable.name",
      "jump": "i",
      "offset": [
        3028,
        3040
      ],
      "op": "JUMP",
      "path": "78"
    },
    "693": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "694": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP1",
      "path": "78"
    },
    "695": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "ISZERO",
      "path": "78"
    },
    "696": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x302"
    },
    "699": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "700": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP1",
      "path": "78"
    },
    "701": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x1F"
    },
    "703": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "LT",
      "path": "78"
    },
    "704": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x2D7"
    },
    "707": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "708": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x100"
    },
    "711": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP1",
      "path": "78"
    },
    "712": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP4",
      "path": "78"
    },
    "713": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SLOAD",
      "path": "78"
    },
    "714": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DIV",
      "path": "78"
    },
    "715": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "MUL",
      "path": "78"
    },
    "716": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP4",
      "path": "78"
    },
    "717": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "718": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "719": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "721": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "ADD",
      "path": "78"
    },
    "722": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "723": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x302"
    },
    "726": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "JUMP",
      "path": "78"
    },
    "727": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "728": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP3",
      "path": "78"
    },
    "729": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "ADD",
      "path": "78"
    },
    "730": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "731": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "732": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "734": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "735": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "737": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "739": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "KECCAK256",
      "path": "78"
    },
    "740": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "741": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "742": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP2",
      "path": "78"
    },
    "743": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SLOAD",
      "path": "78"
    },
    "744": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP2",
      "path": "78"
    },
    "745": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "746": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "747": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x1"
    },
    "749": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "ADD",
      "path": "78"
    },
    "750": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "751": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "753": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "ADD",
      "path": "78"
    },
    "754": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP1",
      "path": "78"
    },
    "755": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP4",
      "path": "78"
    },
    "756": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "GT",
      "path": "78"
    },
    "757": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x2E5"
    },
    "760": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "761": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP3",
      "path": "78"
    },
    "762": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "763": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SUB",
      "path": "78"
    },
    "764": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x1F"
    },
    "766": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "AND",
      "path": "78"
    },
    "767": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "DUP3",
      "path": "78"
    },
    "768": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "ADD",
      "path": "78"
    },
    "769": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "770": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "771": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "POP",
      "path": "78"
    },
    "772": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "POP",
      "path": "78"
    },
    "773": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "POP",
      "path": "78"
    },
    "774": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "POP",
      "path": "78"
    },
    "775": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "POP",
      "path": "78"
    },
    "776": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "777": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        3028,
        3040
      ],
      "op": "POP",
      "path": "78"
    },
    "778": {
      "fn": "ERC721Upgradeable.name",
      "offset": [
        2949,
        3047
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "779": {
      "fn": "ERC721Upgradeable.name",
      "jump": "o",
      "offset": [
        2949,
        3047
      ],
      "op": "JUMP",
      "path": "78"
    },
    "780": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4471,
        4688
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "781": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4547,
        4554
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "783": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "DUP2",
      "path": "78",
      "statement": 4
    },
    "784": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "DUP2",
      "path": "78"
    },
    "785": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "786": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7726
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x67"
    },
    "788": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "790": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "791": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "793": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "DUP2",
      "path": "78"
    },
    "794": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "KECCAK256",
      "path": "78"
    },
    "795": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "SLOAD",
      "path": "78"
    },
    "796": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "798": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "800": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "802": {
      "op": "SHL"
    },
    "803": {
      "op": "SUB"
    },
    "804": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "AND",
      "path": "78"
    },
    "805": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4566,
        4639
      ],
      "op": "PUSH2",
      "path": "78",
      "statement": 5,
      "value": "0x38A"
    },
    "808": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4566,
        4639
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "809": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4566,
        4639
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "811": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4566,
        4639
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "812": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "816": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "818": {
      "op": "SHL"
    },
    "819": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4566,
        4639
      ],
      "op": "DUP2",
      "path": "78"
    },
    "820": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4566,
        4639
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "821": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "823": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4566,
        4639
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "825": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4566,
        4639
      ],
      "op": "DUP3",
      "path": "78"
    },
    "826": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4566,
        4639
      ],
      "op": "ADD",
      "path": "78"
    },
    "827": {
      "op": "MSTORE"
    },
    "828": {
      "op": "PUSH1",
      "value": "0x2C"
    },
    "830": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "832": {
      "op": "DUP3"
    },
    "833": {
      "op": "ADD"
    },
    "834": {
      "op": "MSTORE"
    },
    "835": {
      "op": "PUSH32",
      "value": "0x4552433732313A20617070726F76656420717565727920666F72206E6F6E6578"
    },
    "868": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "870": {
      "op": "DUP3"
    },
    "871": {
      "op": "ADD"
    },
    "872": {
      "op": "MSTORE"
    },
    "873": {
      "op": "PUSH12",
      "value": "0x34B9BA32B73A103A37B5B2B7"
    },
    "886": {
      "op": "PUSH1",
      "value": "0xA1"
    },
    "888": {
      "op": "SHL"
    },
    "889": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "891": {
      "op": "DUP3"
    },
    "892": {
      "op": "ADD"
    },
    "893": {
      "op": "MSTORE"
    },
    "894": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "896": {
      "op": "ADD"
    },
    "897": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4566,
        4639
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "898": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4566,
        4639
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "900": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4566,
        4639
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "901": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4566,
        4639
      ],
      "op": "DUP1",
      "path": "78"
    },
    "902": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4566,
        4639
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "903": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4566,
        4639
      ],
      "op": "SUB",
      "path": "78"
    },
    "904": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4566,
        4639
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "905": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4566,
        4639
      ],
      "op": "REVERT",
      "optimizer_revert": true,
      "path": "78"
    },
    "906": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4566,
        4639
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "907": {
      "op": "POP"
    },
    "908": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4657,
        4681
      ],
      "op": "PUSH1",
      "path": "78",
      "statement": 6,
      "value": "0x0"
    },
    "910": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4657,
        4681
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "911": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4657,
        4681
      ],
      "op": "DUP2",
      "path": "78"
    },
    "912": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4657,
        4681
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "913": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4657,
        4672
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x69"
    },
    "915": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4657,
        4681
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "917": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4657,
        4681
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "918": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4657,
        4681
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "920": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4657,
        4681
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "921": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4657,
        4681
      ],
      "op": "KECCAK256",
      "path": "78"
    },
    "922": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4657,
        4681
      ],
      "op": "SLOAD",
      "path": "78"
    },
    "923": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "925": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "927": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "929": {
      "op": "SHL"
    },
    "930": {
      "op": "SUB"
    },
    "931": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4657,
        4681
      ],
      "op": "AND",
      "path": "78"
    },
    "932": {
      "fn": "ERC721Upgradeable.getApproved",
      "offset": [
        4657,
        4681
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "933": {
      "fn": "ERC721Upgradeable.getApproved",
      "jump": "o",
      "offset": [
        4471,
        4688
      ],
      "op": "JUMP",
      "path": "78"
    },
    "934": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        3998,
        4410
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "935": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4078,
        4091
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "937": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4094,
        4128
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x3B1"
    },
    "940": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4120,
        4127
      ],
      "op": "DUP3",
      "path": "78"
    },
    "941": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4094,
        4119
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x508"
    },
    "944": {
      "fn": "ERC721Upgradeable.approve",
      "jump": "i",
      "offset": [
        4094,
        4128
      ],
      "op": "JUMP",
      "path": "78"
    },
    "945": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4094,
        4128
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "946": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4078,
        4128
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "947": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4078,
        4128
      ],
      "op": "POP",
      "path": "78"
    },
    "948": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4152,
        4157
      ],
      "op": "DUP1",
      "path": "78",
      "statement": 7
    },
    "949": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "951": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "953": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "955": {
      "op": "SHL"
    },
    "956": {
      "op": "SUB"
    },
    "957": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4146,
        4157
      ],
      "op": "AND",
      "path": "78"
    },
    "958": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4146,
        4148
      ],
      "op": "DUP4",
      "path": "78"
    },
    "959": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "961": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "963": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "965": {
      "op": "SHL"
    },
    "966": {
      "op": "SUB"
    },
    "967": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4146,
        4157
      ],
      "op": "AND",
      "path": "78"
    },
    "968": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4146,
        4157
      ],
      "op": "EQ",
      "path": "78"
    },
    "969": {
      "branch": 50,
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4146,
        4157
      ],
      "op": "ISZERO",
      "path": "78"
    },
    "970": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4138,
        4195
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x41F"
    },
    "973": {
      "branch": 50,
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4138,
        4195
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "974": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4138,
        4195
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "976": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4138,
        4195
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "977": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "981": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "983": {
      "op": "SHL"
    },
    "984": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4138,
        4195
      ],
      "op": "DUP2",
      "path": "78"
    },
    "985": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4138,
        4195
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "986": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "988": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4138,
        4195
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "990": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4138,
        4195
      ],
      "op": "DUP3",
      "path": "78"
    },
    "991": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4138,
        4195
      ],
      "op": "ADD",
      "path": "78"
    },
    "992": {
      "op": "MSTORE"
    },
    "993": {
      "op": "PUSH1",
      "value": "0x21"
    },
    "995": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "997": {
      "op": "DUP3"
    },
    "998": {
      "op": "ADD"
    },
    "999": {
      "op": "MSTORE"
    },
    "1000": {
      "op": "PUSH32",
      "value": "0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65"
    },
    "1033": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1035": {
      "op": "DUP3"
    },
    "1036": {
      "op": "ADD"
    },
    "1037": {
      "op": "MSTORE"
    },
    "1038": {
      "op": "PUSH1",
      "value": "0x39"
    },
    "1040": {
      "op": "PUSH1",
      "value": "0xF9"
    },
    "1042": {
      "op": "SHL"
    },
    "1043": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1045": {
      "op": "DUP3"
    },
    "1046": {
      "op": "ADD"
    },
    "1047": {
      "op": "MSTORE"
    },
    "1048": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "1050": {
      "op": "ADD"
    },
    "1051": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4138,
        4195
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x381"
    },
    "1054": {
      "op": "JUMP"
    },
    "1055": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4138,
        4195
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1056": {
      "fn": "ContextUpgradeable._msgSender",
      "offset": [
        929,
        939
      ],
      "op": "CALLER",
      "path": "83",
      "statement": 8
    },
    "1057": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1059": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1061": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1063": {
      "op": "SHL"
    },
    "1064": {
      "op": "SUB"
    },
    "1065": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4227,
        4248
      ],
      "op": "DUP3",
      "path": "78",
      "statement": 9
    },
    "1066": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4227,
        4248
      ],
      "op": "AND",
      "path": "78"
    },
    "1067": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4227,
        4248
      ],
      "op": "EQ",
      "path": "78"
    },
    "1068": {
      "branch": 51,
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4227,
        4248
      ],
      "op": "DUP1",
      "path": "78"
    },
    "1069": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4227,
        4289
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x43B"
    },
    "1072": {
      "branch": 51,
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4227,
        4289
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "1073": {
      "op": "POP"
    },
    "1074": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4252,
        4289
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x43B"
    },
    "1077": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4269,
        4274
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1078": {
      "fn": "ContextUpgradeable._msgSender",
      "offset": [
        929,
        939
      ],
      "op": "CALLER",
      "path": "83"
    },
    "1079": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        4974,
        5136
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x1FA"
    },
    "1082": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "jump": "i",
      "offset": [
        4974,
        5136
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1083": {
      "branch": 52,
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4252,
        4289
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1084": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4206,
        4371
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x4AD"
    },
    "1087": {
      "branch": 52,
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4206,
        4371
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "1088": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4206,
        4371
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "1090": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4206,
        4371
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "1091": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1095": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1097": {
      "op": "SHL"
    },
    "1098": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4206,
        4371
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1099": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4206,
        4371
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1100": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1102": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4206,
        4371
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "1104": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4206,
        4371
      ],
      "op": "DUP3",
      "path": "78"
    },
    "1105": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4206,
        4371
      ],
      "op": "ADD",
      "path": "78"
    },
    "1106": {
      "op": "MSTORE"
    },
    "1107": {
      "op": "PUSH1",
      "value": "0x38"
    },
    "1109": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1111": {
      "op": "DUP3"
    },
    "1112": {
      "op": "ADD"
    },
    "1113": {
      "op": "MSTORE"
    },
    "1114": {
      "op": "PUSH32",
      "value": "0x4552433732313A20617070726F76652063616C6C6572206973206E6F74206F77"
    },
    "1147": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1149": {
      "op": "DUP3"
    },
    "1150": {
      "op": "ADD"
    },
    "1151": {
      "op": "MSTORE"
    },
    "1152": {
      "op": "PUSH32",
      "value": "0x6E6572206E6F7220617070726F76656420666F7220616C6C0000000000000000"
    },
    "1185": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1187": {
      "op": "DUP3"
    },
    "1188": {
      "op": "ADD"
    },
    "1189": {
      "op": "MSTORE"
    },
    "1190": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "1192": {
      "op": "ADD"
    },
    "1193": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4206,
        4371
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x381"
    },
    "1196": {
      "op": "JUMP"
    },
    "1197": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4206,
        4371
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1198": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4382,
        4403
      ],
      "op": "PUSH2",
      "path": "78",
      "statement": 10,
      "value": "0x4B7"
    },
    "1201": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4391,
        4393
      ],
      "op": "DUP4",
      "path": "78"
    },
    "1202": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4395,
        4402
      ],
      "op": "DUP4",
      "path": "78"
    },
    "1203": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4382,
        4390
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x744"
    },
    "1206": {
      "fn": "ERC721Upgradeable.approve",
      "jump": "i",
      "offset": [
        4382,
        4403
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1207": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4382,
        4403
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1208": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4068,
        4410
      ],
      "op": "POP",
      "path": "78"
    },
    "1209": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        3998,
        4410
      ],
      "op": "POP",
      "path": "78"
    },
    "1210": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        3998,
        4410
      ],
      "op": "POP",
      "path": "78"
    },
    "1211": {
      "fn": "ERC721Upgradeable.approve",
      "jump": "o",
      "offset": [
        3998,
        4410
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1212": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5198,
        5528
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1213": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5387,
        5428
      ],
      "op": "PUSH2",
      "path": "78",
      "statement": 11,
      "value": "0x4C6"
    },
    "1216": {
      "fn": "ContextUpgradeable._msgSender",
      "offset": [
        929,
        939
      ],
      "op": "CALLER",
      "path": "83"
    },
    "1217": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5420,
        5427
      ],
      "op": "DUP3",
      "path": "78"
    },
    "1218": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5387,
        5405
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x7B2"
    },
    "1221": {
      "fn": "ERC721Upgradeable.transferFrom",
      "jump": "i",
      "offset": [
        5387,
        5428
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1222": {
      "branch": 53,
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5387,
        5428
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1223": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5379,
        5482
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x4E2"
    },
    "1226": {
      "branch": 53,
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5379,
        5482
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "1227": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5379,
        5482
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "1229": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5379,
        5482
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "1230": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1234": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1236": {
      "op": "SHL"
    },
    "1237": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5379,
        5482
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1238": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5379,
        5482
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1239": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5379,
        5482
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "1241": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5379,
        5482
      ],
      "op": "ADD",
      "path": "78"
    },
    "1242": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5379,
        5482
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x381"
    },
    "1245": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5379,
        5482
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "1246": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5379,
        5482
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x108A"
    },
    "1249": {
      "fn": "ERC721Upgradeable.transferFrom",
      "jump": "i",
      "offset": [
        5379,
        5482
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1250": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5379,
        5482
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1251": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5493,
        5521
      ],
      "op": "PUSH2",
      "path": "78",
      "statement": 12,
      "value": "0x4B7"
    },
    "1254": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5503,
        5507
      ],
      "op": "DUP4",
      "path": "78"
    },
    "1255": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5509,
        5511
      ],
      "op": "DUP4",
      "path": "78"
    },
    "1256": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5513,
        5520
      ],
      "op": "DUP4",
      "path": "78"
    },
    "1257": {
      "fn": "ERC721Upgradeable.transferFrom",
      "offset": [
        5493,
        5502
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x8A9"
    },
    "1260": {
      "fn": "ERC721Upgradeable.transferFrom",
      "jump": "i",
      "offset": [
        5493,
        5521
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1261": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5594,
        5773
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1262": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5727,
        5766
      ],
      "op": "PUSH2",
      "path": "78",
      "statement": 13,
      "value": "0x4B7"
    },
    "1265": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5744,
        5748
      ],
      "op": "DUP4",
      "path": "78"
    },
    "1266": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5750,
        5752
      ],
      "op": "DUP4",
      "path": "78"
    },
    "1267": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5754,
        5761
      ],
      "op": "DUP4",
      "path": "78"
    },
    "1268": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5727,
        5766
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "1270": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5727,
        5766
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "1271": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5727,
        5766
      ],
      "op": "DUP1",
      "path": "78"
    },
    "1272": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5727,
        5766
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "1274": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5727,
        5766
      ],
      "op": "ADD",
      "path": "78"
    },
    "1275": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5727,
        5766
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "1277": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5727,
        5766
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1278": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5727,
        5766
      ],
      "op": "DUP1",
      "path": "78"
    },
    "1279": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5727,
        5766
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "1281": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5727,
        5766
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1282": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5727,
        5766
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1283": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5727,
        5766
      ],
      "op": "POP",
      "path": "78"
    },
    "1284": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5727,
        5743
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x624"
    },
    "1287": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "jump": "i",
      "offset": [
        5727,
        5766
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1288": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2652,
        2887
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1289": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2724,
        2731
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "1291": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2759,
        2775
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1292": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2759,
        2775
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1293": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2759,
        2775
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1294": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2759,
        2766
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x67"
    },
    "1296": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2759,
        2775
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "1298": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2759,
        2775
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1299": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2759,
        2775
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "1301": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2759,
        2775
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1302": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2759,
        2775
      ],
      "op": "KECCAK256",
      "path": "78"
    },
    "1303": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2759,
        2775
      ],
      "op": "SLOAD",
      "path": "78"
    },
    "1304": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1306": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1308": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1310": {
      "op": "SHL"
    },
    "1311": {
      "op": "SUB"
    },
    "1312": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2759,
        2775
      ],
      "op": "AND",
      "path": "78"
    },
    "1313": {
      "branch": 54,
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2793,
        2812
      ],
      "op": "DUP1",
      "path": "78",
      "statement": 14
    },
    "1314": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2785,
        2858
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x274"
    },
    "1317": {
      "branch": 54,
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2785,
        2858
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "1318": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2785,
        2858
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "1320": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2785,
        2858
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "1321": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1325": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1327": {
      "op": "SHL"
    },
    "1328": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2785,
        2858
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1329": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2785,
        2858
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1330": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1332": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2785,
        2858
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "1334": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2785,
        2858
      ],
      "op": "DUP3",
      "path": "78"
    },
    "1335": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2785,
        2858
      ],
      "op": "ADD",
      "path": "78"
    },
    "1336": {
      "op": "MSTORE"
    },
    "1337": {
      "op": "PUSH1",
      "value": "0x29"
    },
    "1339": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1341": {
      "op": "DUP3"
    },
    "1342": {
      "op": "ADD"
    },
    "1343": {
      "op": "MSTORE"
    },
    "1344": {
      "op": "PUSH32",
      "value": "0x4552433732313A206F776E657220717565727920666F72206E6F6E6578697374"
    },
    "1377": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1379": {
      "op": "DUP3"
    },
    "1380": {
      "op": "ADD"
    },
    "1381": {
      "op": "MSTORE"
    },
    "1382": {
      "op": "PUSH9",
      "value": "0x32B73A103A37B5B2B7"
    },
    "1392": {
      "op": "PUSH1",
      "value": "0xB9"
    },
    "1394": {
      "op": "SHL"
    },
    "1395": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1397": {
      "op": "DUP3"
    },
    "1398": {
      "op": "ADD"
    },
    "1399": {
      "op": "MSTORE"
    },
    "1400": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "1402": {
      "op": "ADD"
    },
    "1403": {
      "fn": "ERC721Upgradeable.ownerOf",
      "offset": [
        2785,
        2858
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x381"
    },
    "1406": {
      "op": "JUMP"
    },
    "1407": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2390,
        2595
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1408": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2462,
        2469
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "1410": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1412": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1414": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1416": {
      "op": "SHL"
    },
    "1417": {
      "op": "SUB"
    },
    "1418": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2489,
        2508
      ],
      "op": "DUP3",
      "path": "78",
      "statement": 15
    },
    "1419": {
      "branch": 55,
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2489,
        2508
      ],
      "op": "AND",
      "path": "78"
    },
    "1420": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2481,
        2555
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x5EA"
    },
    "1423": {
      "branch": 55,
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2481,
        2555
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "1424": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2481,
        2555
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "1426": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2481,
        2555
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "1427": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1431": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1433": {
      "op": "SHL"
    },
    "1434": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2481,
        2555
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1435": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2481,
        2555
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1436": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1438": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2481,
        2555
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "1440": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2481,
        2555
      ],
      "op": "DUP3",
      "path": "78"
    },
    "1441": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2481,
        2555
      ],
      "op": "ADD",
      "path": "78"
    },
    "1442": {
      "op": "MSTORE"
    },
    "1443": {
      "op": "PUSH1",
      "value": "0x2A"
    },
    "1445": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1447": {
      "op": "DUP3"
    },
    "1448": {
      "op": "ADD"
    },
    "1449": {
      "op": "MSTORE"
    },
    "1450": {
      "op": "PUSH32",
      "value": "0x4552433732313A2062616C616E636520717565727920666F7220746865207A65"
    },
    "1483": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1485": {
      "op": "DUP3"
    },
    "1486": {
      "op": "ADD"
    },
    "1487": {
      "op": "MSTORE"
    },
    "1488": {
      "op": "PUSH10",
      "value": "0x726F2061646472657373"
    },
    "1499": {
      "op": "PUSH1",
      "value": "0xB0"
    },
    "1501": {
      "op": "SHL"
    },
    "1502": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1504": {
      "op": "DUP3"
    },
    "1505": {
      "op": "ADD"
    },
    "1506": {
      "op": "MSTORE"
    },
    "1507": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "1509": {
      "op": "ADD"
    },
    "1510": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2481,
        2555
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x381"
    },
    "1513": {
      "op": "JUMP"
    },
    "1514": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2481,
        2555
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1515": {
      "op": "POP"
    },
    "1516": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1518": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1520": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1522": {
      "op": "SHL"
    },
    "1523": {
      "op": "SUB"
    },
    "1524": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2572,
        2588
      ],
      "op": "AND",
      "path": "78",
      "statement": 16
    },
    "1525": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2572,
        2588
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "1527": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2572,
        2588
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "1528": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2572,
        2588
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1529": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2572,
        2588
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1530": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2572,
        2581
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x68"
    },
    "1532": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2572,
        2588
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "1534": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2572,
        2588
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1535": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2572,
        2588
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "1537": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2572,
        2588
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "1538": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2572,
        2588
      ],
      "op": "KECCAK256",
      "path": "78"
    },
    "1539": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2572,
        2588
      ],
      "op": "SLOAD",
      "path": "78"
    },
    "1540": {
      "fn": "ERC721Upgradeable.balanceOf",
      "offset": [
        2572,
        2588
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "1541": {
      "fn": "ERC721Upgradeable.balanceOf",
      "jump": "o",
      "offset": [
        2390,
        2595
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1542": {
      "fn": "ERC721Upgradeable.symbol",
      "offset": [
        3111,
        3213
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1543": {
      "fn": "ERC721Upgradeable.symbol",
      "offset": [
        3167,
        3180
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x60"
    },
    "1545": {
      "fn": "ERC721Upgradeable.symbol",
      "offset": [
        3199,
        3206
      ],
      "op": "PUSH1",
      "path": "78",
      "statement": 17,
      "value": "0x66"
    },
    "1547": {
      "fn": "ERC721Upgradeable.symbol",
      "offset": [
        3192,
        3206
      ],
      "op": "DUP1",
      "path": "78"
    },
    "1548": {
      "fn": "ERC721Upgradeable.symbol",
      "offset": [
        3192,
        3206
      ],
      "op": "SLOAD",
      "path": "78"
    },
    "1549": {
      "fn": "ERC721Upgradeable.symbol",
      "offset": [
        3192,
        3206
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x289"
    },
    "1552": {
      "fn": "ERC721Upgradeable.symbol",
      "offset": [
        3192,
        3206
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "1553": {
      "fn": "ERC721Upgradeable.symbol",
      "offset": [
        3192,
        3206
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x114A"
    },
    "1556": {
      "fn": "ERC721Upgradeable.symbol",
      "jump": "i",
      "offset": [
        3192,
        3206
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1557": {
      "fn": "ERC721Upgradeable.setApprovalForAll",
      "offset": [
        4755,
        4908
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1558": {
      "fn": "ERC721Upgradeable.setApprovalForAll",
      "offset": [
        4849,
        4901
      ],
      "op": "PUSH2",
      "path": "78",
      "statement": 18,
      "value": "0x620"
    },
    "1561": {
      "fn": "ContextUpgradeable._msgSender",
      "offset": [
        929,
        939
      ],
      "op": "CALLER",
      "path": "83"
    },
    "1562": {
      "fn": "ERC721Upgradeable.setApprovalForAll",
      "offset": [
        4882,
        4890
      ],
      "op": "DUP4",
      "path": "78"
    },
    "1563": {
      "fn": "ERC721Upgradeable.setApprovalForAll",
      "offset": [
        4892,
        4900
      ],
      "op": "DUP4",
      "path": "78"
    },
    "1564": {
      "fn": "ERC721Upgradeable.setApprovalForAll",
      "offset": [
        4849,
        4867
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xA45"
    },
    "1567": {
      "fn": "ERC721Upgradeable.setApprovalForAll",
      "jump": "i",
      "offset": [
        4849,
        4901
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1568": {
      "fn": "ERC721Upgradeable.setApprovalForAll",
      "offset": [
        4849,
        4901
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1569": {
      "fn": "ERC721Upgradeable.setApprovalForAll",
      "offset": [
        4755,
        4908
      ],
      "op": "POP",
      "path": "78"
    },
    "1570": {
      "fn": "ERC721Upgradeable.setApprovalForAll",
      "offset": [
        4755,
        4908
      ],
      "op": "POP",
      "path": "78"
    },
    "1571": {
      "fn": "ERC721Upgradeable.setApprovalForAll",
      "jump": "o",
      "offset": [
        4755,
        4908
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1572": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5839,
        6159
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1573": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6008,
        6049
      ],
      "op": "PUSH2",
      "path": "78",
      "statement": 19,
      "value": "0x62E"
    },
    "1576": {
      "fn": "ContextUpgradeable._msgSender",
      "offset": [
        929,
        939
      ],
      "op": "CALLER",
      "path": "83"
    },
    "1577": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6041,
        6048
      ],
      "op": "DUP4",
      "path": "78"
    },
    "1578": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6008,
        6026
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x7B2"
    },
    "1581": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "jump": "i",
      "offset": [
        6008,
        6049
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1582": {
      "branch": 56,
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6008,
        6049
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1583": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6000,
        6103
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x64A"
    },
    "1586": {
      "branch": 56,
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6000,
        6103
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "1587": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6000,
        6103
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "1589": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6000,
        6103
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "1590": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1594": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1596": {
      "op": "SHL"
    },
    "1597": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6000,
        6103
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1598": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6000,
        6103
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1599": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6000,
        6103
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "1601": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6000,
        6103
      ],
      "op": "ADD",
      "path": "78"
    },
    "1602": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6000,
        6103
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x381"
    },
    "1605": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6000,
        6103
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "1606": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6000,
        6103
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x108A"
    },
    "1609": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "jump": "i",
      "offset": [
        6000,
        6103
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1610": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6000,
        6103
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1611": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6113,
        6152
      ],
      "op": "PUSH2",
      "path": "78",
      "statement": 20,
      "value": "0x656"
    },
    "1614": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6127,
        6131
      ],
      "op": "DUP5",
      "path": "78"
    },
    "1615": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6133,
        6135
      ],
      "op": "DUP5",
      "path": "78"
    },
    "1616": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6137,
        6144
      ],
      "op": "DUP5",
      "path": "78"
    },
    "1617": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6146,
        6151
      ],
      "op": "DUP5",
      "path": "78"
    },
    "1618": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6113,
        6126
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xB14"
    },
    "1621": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "jump": "i",
      "offset": [
        6113,
        6152
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1622": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        6113,
        6152
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1623": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5839,
        6159
      ],
      "op": "POP",
      "path": "78"
    },
    "1624": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5839,
        6159
      ],
      "op": "POP",
      "path": "78"
    },
    "1625": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5839,
        6159
      ],
      "op": "POP",
      "path": "78"
    },
    "1626": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "offset": [
        5839,
        6159
      ],
      "op": "POP",
      "path": "78"
    },
    "1627": {
      "fn": "ERC721Upgradeable.safeTransferFrom",
      "jump": "o",
      "offset": [
        5839,
        6159
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1628": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3279,
        3608
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1629": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7696,
        7700
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "1631": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1632": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1633": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1634": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7726
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x67"
    },
    "1636": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "1638": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1639": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "1641": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "1642": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "KECCAK256",
      "path": "78"
    },
    "1643": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "SLOAD",
      "path": "78"
    },
    "1644": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3352,
        3365
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x60"
    },
    "1646": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3352,
        3365
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "1647": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1649": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1651": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1653": {
      "op": "SHL"
    },
    "1654": {
      "op": "SUB"
    },
    "1655": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "AND",
      "path": "78"
    },
    "1656": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3377,
        3453
      ],
      "op": "PUSH2",
      "path": "78",
      "statement": 21,
      "value": "0x6DB"
    },
    "1659": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3377,
        3453
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "1660": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3377,
        3453
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "1662": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3377,
        3453
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "1663": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1667": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1669": {
      "op": "SHL"
    },
    "1670": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3377,
        3453
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1671": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3377,
        3453
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1672": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1674": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3377,
        3453
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "1676": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3377,
        3453
      ],
      "op": "DUP3",
      "path": "78"
    },
    "1677": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3377,
        3453
      ],
      "op": "ADD",
      "path": "78"
    },
    "1678": {
      "op": "MSTORE"
    },
    "1679": {
      "op": "PUSH1",
      "value": "0x2F"
    },
    "1681": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1683": {
      "op": "DUP3"
    },
    "1684": {
      "op": "ADD"
    },
    "1685": {
      "op": "MSTORE"
    },
    "1686": {
      "op": "PUSH32",
      "value": "0x4552433732314D657461646174613A2055524920717565727920666F72206E6F"
    },
    "1719": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1721": {
      "op": "DUP3"
    },
    "1722": {
      "op": "ADD"
    },
    "1723": {
      "op": "MSTORE"
    },
    "1724": {
      "op": "PUSH15",
      "value": "0x3732BC34B9BA32B73A103A37B5B2B7"
    },
    "1740": {
      "op": "PUSH1",
      "value": "0x89"
    },
    "1742": {
      "op": "SHL"
    },
    "1743": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1745": {
      "op": "DUP3"
    },
    "1746": {
      "op": "ADD"
    },
    "1747": {
      "op": "MSTORE"
    },
    "1748": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "1750": {
      "op": "ADD"
    },
    "1751": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3377,
        3453
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x381"
    },
    "1754": {
      "op": "JUMP"
    },
    "1755": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3377,
        3453
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1756": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3464,
        3485
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "1758": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3488,
        3498
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x6F2"
    },
    "1761": {
      "fn": "ERC721Upgradeable._baseURI",
      "offset": [
        3925,
        3934
      ],
      "op": "PUSH1",
      "path": "78",
      "statement": 22,
      "value": "0x40"
    },
    "1763": {
      "fn": "ERC721Upgradeable._baseURI",
      "offset": [
        3925,
        3934
      ],
      "op": "DUP1",
      "path": "78"
    },
    "1764": {
      "fn": "ERC721Upgradeable._baseURI",
      "offset": [
        3925,
        3934
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "1765": {
      "fn": "ERC721Upgradeable._baseURI",
      "offset": [
        3925,
        3934
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "1767": {
      "fn": "ERC721Upgradeable._baseURI",
      "offset": [
        3925,
        3934
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1768": {
      "fn": "ERC721Upgradeable._baseURI",
      "offset": [
        3925,
        3934
      ],
      "op": "ADD",
      "path": "78"
    },
    "1769": {
      "fn": "ERC721Upgradeable._baseURI",
      "offset": [
        3925,
        3934
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "1770": {
      "fn": "ERC721Upgradeable._baseURI",
      "offset": [
        3925,
        3934
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "1771": {
      "fn": "ERC721Upgradeable._baseURI",
      "offset": [
        3925,
        3934
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1772": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1774": {
      "fn": "ERC721Upgradeable._baseURI",
      "offset": [
        3925,
        3934
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1775": {
      "fn": "ERC721Upgradeable._baseURI",
      "offset": [
        3925,
        3934
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1776": {
      "fn": "ERC721Upgradeable._baseURI",
      "offset": [
        3925,
        3934
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "1777": {
      "fn": "ERC721Upgradeable._baseURI",
      "offset": [
        3849,
        3941
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1778": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3488,
        3498
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1779": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3464,
        3498
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "1780": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3464,
        3498
      ],
      "op": "POP",
      "path": "78"
    },
    "1781": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3539,
        3540
      ],
      "op": "PUSH1",
      "path": "78",
      "statement": 23,
      "value": "0x0"
    },
    "1783": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3521,
        3528
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1784": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3515,
        3536
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "1785": {
      "branch": 57,
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3515,
        3540
      ],
      "op": "GT",
      "path": "78"
    },
    "1786": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3515,
        3601
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x712"
    },
    "1789": {
      "branch": 57,
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3515,
        3601
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "1790": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3515,
        3601
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "1792": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3515,
        3601
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "1793": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3515,
        3601
      ],
      "op": "DUP1",
      "path": "78"
    },
    "1794": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3515,
        3601
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "1796": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3515,
        3601
      ],
      "op": "ADD",
      "path": "78"
    },
    "1797": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3515,
        3601
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "1799": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3515,
        3601
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1800": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3515,
        3601
      ],
      "op": "DUP1",
      "path": "78"
    },
    "1801": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3515,
        3601
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "1803": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3515,
        3601
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1804": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3515,
        3601
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1805": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3515,
        3601
      ],
      "op": "POP",
      "path": "78"
    },
    "1806": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3515,
        3601
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x73D"
    },
    "1809": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3515,
        3601
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1810": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3515,
        3601
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1811": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3567,
        3574
      ],
      "op": "DUP1",
      "path": "78"
    },
    "1812": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3576,
        3594
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x71C"
    },
    "1815": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3576,
        3583
      ],
      "op": "DUP5",
      "path": "78"
    },
    "1816": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3576,
        3592
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xB47"
    },
    "1819": {
      "fn": "ERC721Upgradeable.tokenURI",
      "jump": "i",
      "offset": [
        3576,
        3594
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1820": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3576,
        3594
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1821": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "1823": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "1824": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "1826": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "ADD",
      "path": "78"
    },
    "1827": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x72D"
    },
    "1830": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "SWAP3",
      "path": "78"
    },
    "1831": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "1832": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "1833": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xFB9"
    },
    "1836": {
      "fn": "ERC721Upgradeable.tokenURI",
      "jump": "i",
      "offset": [
        3550,
        3595
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1837": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1838": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "1840": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "1841": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "1843": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1844": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "DUP4",
      "path": "78"
    },
    "1845": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "SUB",
      "path": "78"
    },
    "1846": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "SUB",
      "path": "78"
    },
    "1847": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1848": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1849": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "1850": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "1852": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3550,
        3595
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1853": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3515,
        3601
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1854": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3508,
        3601
      ],
      "op": "SWAP4",
      "path": "78"
    },
    "1855": {
      "fn": "ERC721Upgradeable.tokenURI",
      "offset": [
        3279,
        3608
      ],
      "op": "SWAP3",
      "path": "78"
    },
    "1856": {
      "op": "POP"
    },
    "1857": {
      "op": "POP"
    },
    "1858": {
      "op": "POP"
    },
    "1859": {
      "fn": "ERC721Upgradeable.tokenURI",
      "jump": "o",
      "offset": [
        3279,
        3608
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1860": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11673,
        11855
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1861": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11771
      ],
      "op": "PUSH1",
      "path": "78",
      "statement": 24,
      "value": "0x0"
    },
    "1863": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11771
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1864": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11771
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1865": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11771
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1866": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11762
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x69"
    },
    "1868": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11771
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "1870": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11771
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1871": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11771
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "1873": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11771
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "1874": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11771
      ],
      "op": "KECCAK256",
      "path": "78"
    },
    "1875": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11776
      ],
      "op": "DUP1",
      "path": "78"
    },
    "1876": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11776
      ],
      "op": "SLOAD",
      "path": "78"
    },
    "1877": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1879": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1881": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1883": {
      "op": "SHL"
    },
    "1884": {
      "op": "SUB"
    },
    "1885": {
      "op": "NOT"
    },
    "1886": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11776
      ],
      "op": "AND",
      "path": "78"
    },
    "1887": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1889": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1891": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1893": {
      "op": "SHL"
    },
    "1894": {
      "op": "SUB"
    },
    "1895": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11776
      ],
      "op": "DUP5",
      "path": "78"
    },
    "1896": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11776
      ],
      "op": "AND",
      "path": "78"
    },
    "1897": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11776
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "1898": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11776
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1899": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11776
      ],
      "op": "OR",
      "path": "78"
    },
    "1900": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11776
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "1901": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11776
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "1902": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11776
      ],
      "op": "SSTORE",
      "path": "78"
    },
    "1903": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11771
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1904": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11771
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "1905": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11800,
        11834
      ],
      "op": "PUSH2",
      "path": "78",
      "statement": 25,
      "value": "0x779"
    },
    "1908": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11747,
        11771
      ],
      "op": "DUP3",
      "path": "78"
    },
    "1909": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11800,
        11825
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x508"
    },
    "1912": {
      "fn": "ERC721Upgradeable._approve",
      "jump": "i",
      "offset": [
        11800,
        11834
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1913": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11800,
        11834
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1914": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1916": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1918": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1920": {
      "op": "SHL"
    },
    "1921": {
      "op": "SUB"
    },
    "1922": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11791,
        11848
      ],
      "op": "AND",
      "path": "78"
    },
    "1923": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11791,
        11848
      ],
      "op": "PUSH32",
      "path": "78",
      "value": "0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925"
    },
    "1956": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11791,
        11848
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "1958": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11791,
        11848
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "1959": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11791,
        11848
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "1961": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11791,
        11848
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "1962": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11791,
        11848
      ],
      "op": "DUP1",
      "path": "78"
    },
    "1963": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11791,
        11848
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "1964": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11791,
        11848
      ],
      "op": "SUB",
      "path": "78"
    },
    "1965": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11791,
        11848
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "1966": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11791,
        11848
      ],
      "op": "LOG4",
      "path": "78"
    },
    "1967": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11673,
        11855
      ],
      "op": "POP",
      "path": "78"
    },
    "1968": {
      "fn": "ERC721Upgradeable._approve",
      "offset": [
        11673,
        11855
      ],
      "op": "POP",
      "path": "78"
    },
    "1969": {
      "fn": "ERC721Upgradeable._approve",
      "jump": "o",
      "offset": [
        11673,
        11855
      ],
      "op": "JUMP",
      "path": "78"
    },
    "1970": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        7914,
        8269
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "1971": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8007,
        8011
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "1973": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1974": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1975": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1976": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7726
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x67"
    },
    "1978": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "1980": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "1981": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "1983": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "DUP2",
      "path": "78"
    },
    "1984": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "KECCAK256",
      "path": "78"
    },
    "1985": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "SLOAD",
      "path": "78"
    },
    "1986": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1988": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1990": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1992": {
      "op": "SHL"
    },
    "1993": {
      "op": "SUB"
    },
    "1994": {
      "fn": "ERC721Upgradeable._exists",
      "offset": [
        7719,
        7735
      ],
      "op": "AND",
      "path": "78"
    },
    "1995": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8023,
        8096
      ],
      "op": "PUSH2",
      "path": "78",
      "statement": 26,
      "value": "0x82B"
    },
    "1998": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8023,
        8096
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "1999": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8023,
        8096
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "2001": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8023,
        8096
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "2002": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "2006": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "2008": {
      "op": "SHL"
    },
    "2009": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8023,
        8096
      ],
      "op": "DUP2",
      "path": "78"
    },
    "2010": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8023,
        8096
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "2011": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2013": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8023,
        8096
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "2015": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8023,
        8096
      ],
      "op": "DUP3",
      "path": "78"
    },
    "2016": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8023,
        8096
      ],
      "op": "ADD",
      "path": "78"
    },
    "2017": {
      "op": "MSTORE"
    },
    "2018": {
      "op": "PUSH1",
      "value": "0x2C"
    },
    "2020": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "2022": {
      "op": "DUP3"
    },
    "2023": {
      "op": "ADD"
    },
    "2024": {
      "op": "MSTORE"
    },
    "2025": {
      "op": "PUSH32",
      "value": "0x4552433732313A206F70657261746F7220717565727920666F72206E6F6E6578"
    },
    "2058": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "2060": {
      "op": "DUP3"
    },
    "2061": {
      "op": "ADD"
    },
    "2062": {
      "op": "MSTORE"
    },
    "2063": {
      "op": "PUSH12",
      "value": "0x34B9BA32B73A103A37B5B2B7"
    },
    "2076": {
      "op": "PUSH1",
      "value": "0xA1"
    },
    "2078": {
      "op": "SHL"
    },
    "2079": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "2081": {
      "op": "DUP3"
    },
    "2082": {
      "op": "ADD"
    },
    "2083": {
      "op": "MSTORE"
    },
    "2084": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "2086": {
      "op": "ADD"
    },
    "2087": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8023,
        8096
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x381"
    },
    "2090": {
      "op": "JUMP"
    },
    "2091": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8023,
        8096
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "2092": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8106,
        8119
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "2094": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8122,
        8156
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x836"
    },
    "2097": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8148,
        8155
      ],
      "op": "DUP4",
      "path": "78"
    },
    "2098": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8122,
        8147
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x508"
    },
    "2101": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "jump": "i",
      "offset": [
        8122,
        8156
      ],
      "op": "JUMP",
      "path": "78"
    },
    "2102": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8122,
        8156
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "2103": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8106,
        8156
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2104": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8106,
        8156
      ],
      "op": "POP",
      "path": "78"
    },
    "2105": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8185,
        8190
      ],
      "op": "DUP1",
      "path": "78",
      "statement": 27
    },
    "2106": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2108": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2110": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2112": {
      "op": "SHL"
    },
    "2113": {
      "op": "SUB"
    },
    "2114": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8174,
        8190
      ],
      "op": "AND",
      "path": "78"
    },
    "2115": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8174,
        8181
      ],
      "op": "DUP5",
      "path": "78"
    },
    "2116": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2118": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2120": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2122": {
      "op": "SHL"
    },
    "2123": {
      "op": "SUB"
    },
    "2124": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8174,
        8190
      ],
      "op": "AND",
      "path": "78"
    },
    "2125": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8174,
        8190
      ],
      "op": "EQ",
      "path": "78"
    },
    "2126": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8174,
        8225
      ],
      "op": "DUP1",
      "path": "78"
    },
    "2127": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8174,
        8225
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x871"
    },
    "2130": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8174,
        8225
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "2131": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8174,
        8225
      ],
      "op": "POP",
      "path": "78"
    },
    "2132": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8218,
        8225
      ],
      "op": "DUP4",
      "path": "78"
    },
    "2133": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2135": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2137": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2139": {
      "op": "SHL"
    },
    "2140": {
      "op": "SUB"
    },
    "2141": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8194,
        8225
      ],
      "op": "AND",
      "path": "78"
    },
    "2142": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8194,
        8214
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x866"
    },
    "2145": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8206,
        8213
      ],
      "op": "DUP5",
      "path": "78"
    },
    "2146": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8194,
        8205
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x30C"
    },
    "2149": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "jump": "i",
      "offset": [
        8194,
        8214
      ],
      "op": "JUMP",
      "path": "78"
    },
    "2150": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8194,
        8214
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "2151": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2153": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2155": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2157": {
      "op": "SHL"
    },
    "2158": {
      "op": "SUB"
    },
    "2159": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8194,
        8225
      ],
      "op": "AND",
      "path": "78"
    },
    "2160": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8194,
        8225
      ],
      "op": "EQ",
      "path": "78"
    },
    "2161": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8174,
        8225
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "2162": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8174,
        8261
      ],
      "op": "DUP1",
      "path": "78"
    },
    "2163": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8174,
        8261
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x8A1"
    },
    "2166": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8174,
        8261
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "2167": {
      "op": "POP"
    },
    "2168": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2170": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2172": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2174": {
      "op": "SHL"
    },
    "2175": {
      "op": "SUB"
    },
    "2176": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "DUP1",
      "path": "78"
    },
    "2177": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "DUP3",
      "path": "78"
    },
    "2178": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "AND",
      "path": "78"
    },
    "2179": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5071,
        5075
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "2181": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2182": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "DUP2",
      "path": "78"
    },
    "2183": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "2184": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5112
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x6A"
    },
    "2186": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "2188": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2189": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "DUP2",
      "path": "78"
    },
    "2190": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "2191": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "2193": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "DUP1",
      "path": "78"
    },
    "2194": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "DUP4",
      "path": "78"
    },
    "2195": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5119
      ],
      "op": "KECCAK256",
      "path": "78"
    },
    "2196": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "SWAP4",
      "path": "78"
    },
    "2197": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "DUP9",
      "path": "78"
    },
    "2198": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "AND",
      "path": "78"
    },
    "2199": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "DUP4",
      "path": "78"
    },
    "2200": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "2201": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "SWAP3",
      "path": "78"
    },
    "2202": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2203": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "2204": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "KECCAK256",
      "path": "78"
    },
    "2205": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "SLOAD",
      "path": "78"
    },
    "2206": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0xFF"
    },
    "2208": {
      "fn": "ERC721Upgradeable.isApprovedForAll",
      "offset": [
        5094,
        5129
      ],
      "op": "AND",
      "path": "78"
    },
    "2209": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8229,
        8261
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "2210": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        8166,
        8262
      ],
      "op": "SWAP5",
      "path": "78"
    },
    "2211": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "offset": [
        7914,
        8269
      ],
      "op": "SWAP4",
      "path": "78"
    },
    "2212": {
      "op": "POP"
    },
    "2213": {
      "op": "POP"
    },
    "2214": {
      "op": "POP"
    },
    "2215": {
      "op": "POP"
    },
    "2216": {
      "fn": "ERC721Upgradeable._isApprovedOrOwner",
      "jump": "o",
      "offset": [
        7914,
        8269
      ],
      "op": "JUMP",
      "path": "78"
    },
    "2217": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        10946,
        11562
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "2218": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11111,
        11115
      ],
      "op": "DUP3",
      "path": "78",
      "statement": 28
    },
    "2219": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2221": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2223": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2225": {
      "op": "SHL"
    },
    "2226": {
      "op": "SUB"
    },
    "2227": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11073,
        11115
      ],
      "op": "AND",
      "path": "78"
    },
    "2228": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11073,
        11107
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x8BC"
    },
    "2231": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11099,
        11106
      ],
      "op": "DUP3",
      "path": "78"
    },
    "2232": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11073,
        11098
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x508"
    },
    "2235": {
      "fn": "ERC721Upgradeable._transfer",
      "jump": "i",
      "offset": [
        11073,
        11107
      ],
      "op": "JUMP",
      "path": "78"
    },
    "2236": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11073,
        11107
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "2237": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2239": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2241": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2243": {
      "op": "SHL"
    },
    "2244": {
      "op": "SUB"
    },
    "2245": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11073,
        11115
      ],
      "op": "AND",
      "path": "78"
    },
    "2246": {
      "branch": 58,
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11073,
        11115
      ],
      "op": "EQ",
      "path": "78"
    },
    "2247": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11065,
        11157
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x920"
    },
    "2250": {
      "branch": 58,
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11065,
        11157
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "2251": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11065,
        11157
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "2253": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11065,
        11157
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "2254": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "2258": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "2260": {
      "op": "SHL"
    },
    "2261": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11065,
        11157
      ],
      "op": "DUP2",
      "path": "78"
    },
    "2262": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11065,
        11157
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "2263": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2265": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11065,
        11157
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "2267": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11065,
        11157
      ],
      "op": "DUP3",
      "path": "78"
    },
    "2268": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11065,
        11157
      ],
      "op": "ADD",
      "path": "78"
    },
    "2269": {
      "op": "MSTORE"
    },
    "2270": {
      "op": "PUSH1",
      "value": "0x25"
    },
    "2272": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "2274": {
      "op": "DUP3"
    },
    "2275": {
      "op": "ADD"
    },
    "2276": {
      "op": "MSTORE"
    },
    "2277": {
      "op": "PUSH32",
      "value": "0x4552433732313A207472616E736665722066726F6D20696E636F727265637420"
    },
    "2310": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "2312": {
      "op": "DUP3"
    },
    "2313": {
      "op": "ADD"
    },
    "2314": {
      "op": "MSTORE"
    },
    "2315": {
      "op": "PUSH5",
      "value": "0x37BBB732B9"
    },
    "2321": {
      "op": "PUSH1",
      "value": "0xD9"
    },
    "2323": {
      "op": "SHL"
    },
    "2324": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "2326": {
      "op": "DUP3"
    },
    "2327": {
      "op": "ADD"
    },
    "2328": {
      "op": "MSTORE"
    },
    "2329": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "2331": {
      "op": "ADD"
    },
    "2332": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11065,
        11157
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x381"
    },
    "2335": {
      "op": "JUMP"
    },
    "2336": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11065,
        11157
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "2337": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2339": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2341": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2343": {
      "op": "SHL"
    },
    "2344": {
      "op": "SUB"
    },
    "2345": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11175,
        11191
      ],
      "op": "DUP3",
      "path": "78",
      "statement": 29
    },
    "2346": {
      "branch": 59,
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11175,
        11191
      ],
      "op": "AND",
      "path": "78"
    },
    "2347": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11167,
        11232
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x982"
    },
    "2350": {
      "branch": 59,
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11167,
        11232
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "2351": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11167,
        11232
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "2353": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11167,
        11232
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "2354": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "2358": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "2360": {
      "op": "SHL"
    },
    "2361": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11167,
        11232
      ],
      "op": "DUP2",
      "path": "78"
    },
    "2362": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11167,
        11232
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "2363": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2365": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11167,
        11232
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "2367": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11167,
        11232
      ],
      "op": "DUP3",
      "path": "78"
    },
    "2368": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11167,
        11232
      ],
      "op": "ADD",
      "path": "78"
    },
    "2369": {
      "op": "MSTORE"
    },
    "2370": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "2372": {
      "op": "DUP1"
    },
    "2373": {
      "op": "DUP3"
    },
    "2374": {
      "op": "ADD"
    },
    "2375": {
      "op": "MSTORE"
    },
    "2376": {
      "op": "PUSH32",
      "value": "0x4552433732313A207472616E7366657220746F20746865207A65726F20616464"
    },
    "2409": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "2411": {
      "op": "DUP3"
    },
    "2412": {
      "op": "ADD"
    },
    "2413": {
      "op": "MSTORE"
    },
    "2414": {
      "op": "PUSH4",
      "value": "0x72657373"
    },
    "2419": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "2421": {
      "op": "SHL"
    },
    "2422": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "2424": {
      "op": "DUP3"
    },
    "2425": {
      "op": "ADD"
    },
    "2426": {
      "op": "MSTORE"
    },
    "2427": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "2429": {
      "op": "ADD"
    },
    "2430": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11167,
        11232
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x381"
    },
    "2433": {
      "op": "JUMP"
    },
    "2434": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11167,
        11232
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "2435": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11344,
        11373
      ],
      "op": "PUSH2",
      "path": "78",
      "statement": 30,
      "value": "0x98D"
    },
    "2438": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11361,
        11362
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "2440": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11365,
        11372
      ],
      "op": "DUP3",
      "path": "78"
    },
    "2441": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11344,
        11352
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x744"
    },
    "2444": {
      "fn": "ERC721Upgradeable._transfer",
      "jump": "i",
      "offset": [
        11344,
        11373
      ],
      "op": "JUMP",
      "path": "78"
    },
    "2445": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11344,
        11373
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "2446": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2448": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2450": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2452": {
      "op": "SHL"
    },
    "2453": {
      "op": "SUB"
    },
    "2454": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11399
      ],
      "op": "DUP4",
      "path": "78",
      "statement": 31
    },
    "2455": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11399
      ],
      "op": "AND",
      "path": "78"
    },
    "2456": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11399
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "2458": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11399
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2459": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11399
      ],
      "op": "DUP2",
      "path": "78"
    },
    "2460": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11399
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "2461": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11393
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x68"
    },
    "2463": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11399
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "2465": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11399
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "2466": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11399
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "2468": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11399
      ],
      "op": "DUP2",
      "path": "78"
    },
    "2469": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11399
      ],
      "op": "KECCAK256",
      "path": "78"
    },
    "2470": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11404
      ],
      "op": "DUP1",
      "path": "78"
    },
    "2471": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11404
      ],
      "op": "SLOAD",
      "path": "78"
    },
    "2472": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11403,
        11404
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x1"
    },
    "2474": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11403,
        11404
      ],
      "op": "SWAP3",
      "path": "78"
    },
    "2475": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11399
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2476": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11404
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x9B6"
    },
    "2479": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11404
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2480": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11403,
        11404
      ],
      "op": "DUP5",
      "path": "78"
    },
    "2481": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11403,
        11404
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2482": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11404
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x1107"
    },
    "2485": {
      "fn": "ERC721Upgradeable._transfer",
      "jump": "i",
      "offset": [
        11384,
        11404
      ],
      "op": "JUMP",
      "path": "78"
    },
    "2486": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11404
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "2487": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11404
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2488": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11404
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "2489": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11384,
        11404
      ],
      "op": "SSTORE",
      "path": "78"
    },
    "2490": {
      "op": "POP"
    },
    "2491": {
      "op": "POP"
    },
    "2492": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2494": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2496": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2498": {
      "op": "SHL"
    },
    "2499": {
      "op": "SUB"
    },
    "2500": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11427
      ],
      "op": "DUP3",
      "path": "78",
      "statement": 32
    },
    "2501": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11427
      ],
      "op": "AND",
      "path": "78"
    },
    "2502": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11427
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "2504": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11427
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2505": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11427
      ],
      "op": "DUP2",
      "path": "78"
    },
    "2506": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11427
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "2507": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11423
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x68"
    },
    "2509": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11427
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "2511": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11427
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "2512": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11427
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "2514": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11427
      ],
      "op": "DUP2",
      "path": "78"
    },
    "2515": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11427
      ],
      "op": "KECCAK256",
      "path": "78"
    },
    "2516": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11432
      ],
      "op": "DUP1",
      "path": "78"
    },
    "2517": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11432
      ],
      "op": "SLOAD",
      "path": "78"
    },
    "2518": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11431,
        11432
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x1"
    },
    "2520": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11431,
        11432
      ],
      "op": "SWAP3",
      "path": "78"
    },
    "2521": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11427
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2522": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11432
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x9E4"
    },
    "2525": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11432
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2526": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11431,
        11432
      ],
      "op": "DUP5",
      "path": "78"
    },
    "2527": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11431,
        11432
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2528": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11432
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x10DB"
    },
    "2531": {
      "fn": "ERC721Upgradeable._transfer",
      "jump": "i",
      "offset": [
        11414,
        11432
      ],
      "op": "JUMP",
      "path": "78"
    },
    "2532": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11432
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "2533": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11432
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2534": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11432
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "2535": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11414,
        11432
      ],
      "op": "SSTORE",
      "path": "78"
    },
    "2536": {
      "op": "POP"
    },
    "2537": {
      "op": "POP"
    },
    "2538": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11458
      ],
      "op": "PUSH1",
      "path": "78",
      "statement": 33,
      "value": "0x0"
    },
    "2540": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11458
      ],
      "op": "DUP2",
      "path": "78"
    },
    "2541": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11458
      ],
      "op": "DUP2",
      "path": "78"
    },
    "2542": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11458
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "2543": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11449
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x67"
    },
    "2545": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11458
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "2547": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11458
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "2548": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11458
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "2550": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11458
      ],
      "op": "DUP1",
      "path": "78"
    },
    "2551": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11458
      ],
      "op": "DUP3",
      "path": "78"
    },
    "2552": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11458
      ],
      "op": "KECCAK256",
      "path": "78"
    },
    "2553": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11463
      ],
      "op": "DUP1",
      "path": "78"
    },
    "2554": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11463
      ],
      "op": "SLOAD",
      "path": "78"
    },
    "2555": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2557": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2559": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2561": {
      "op": "SHL"
    },
    "2562": {
      "op": "SUB"
    },
    "2563": {
      "op": "NOT"
    },
    "2564": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11463
      ],
      "op": "AND",
      "path": "78"
    },
    "2565": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2567": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2569": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2571": {
      "op": "SHL"
    },
    "2572": {
      "op": "SUB"
    },
    "2573": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11463
      ],
      "op": "DUP7",
      "path": "78"
    },
    "2574": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11463
      ],
      "op": "DUP2",
      "path": "78"
    },
    "2575": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11463
      ],
      "op": "AND",
      "path": "78"
    },
    "2576": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11463
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "2577": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11463
      ],
      "op": "DUP3",
      "path": "78"
    },
    "2578": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11463
      ],
      "op": "OR",
      "path": "78"
    },
    "2579": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11463
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2580": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11463
      ],
      "op": "SWAP3",
      "path": "78"
    },
    "2581": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11463
      ],
      "op": "SSTORE",
      "path": "78"
    },
    "2582": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11479,
        11506
      ],
      "op": "SWAP2",
      "path": "78",
      "statement": 34
    },
    "2583": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11479,
        11506
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "2584": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11458
      ],
      "op": "DUP5",
      "path": "78"
    },
    "2585": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11442,
        11458
      ],
      "op": "SWAP4",
      "path": "78"
    },
    "2586": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11479,
        11506
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "2587": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11479,
        11506
      ],
      "op": "DUP8",
      "path": "78"
    },
    "2588": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11479,
        11506
      ],
      "op": "AND",
      "path": "78"
    },
    "2589": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11479,
        11506
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "2590": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11479,
        11506
      ],
      "op": "PUSH32",
      "path": "78",
      "value": "0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF"
    },
    "2623": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11479,
        11506
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "2624": {
      "fn": "ERC721Upgradeable._transfer",
      "offset": [
        11479,
        11506
      ],
      "op": "LOG4",
      "path": "78"
    },
    "2625": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        4068,
        4410
      ],
      "op": "POP",
      "path": "78"
    },
    "2626": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        3998,
        4410
      ],
      "op": "POP",
      "path": "78"
    },
    "2627": {
      "fn": "ERC721Upgradeable.approve",
      "offset": [
        3998,
        4410
      ],
      "op": "POP",
      "path": "78"
    },
    "2628": {
      "fn": "ERC721Upgradeable.approve",
      "jump": "o",
      "offset": [
        3998,
        4410
      ],
      "op": "JUMP",
      "path": "78"
    },
    "2629": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        11990,
        12297
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "2630": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12140,
        12148
      ],
      "op": "DUP2",
      "path": "78",
      "statement": 35
    },
    "2631": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2633": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2635": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2637": {
      "op": "SHL"
    },
    "2638": {
      "op": "SUB"
    },
    "2639": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12131,
        12148
      ],
      "op": "AND",
      "path": "78"
    },
    "2640": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12131,
        12136
      ],
      "op": "DUP4",
      "path": "78"
    },
    "2641": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2643": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2645": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2647": {
      "op": "SHL"
    },
    "2648": {
      "op": "SUB"
    },
    "2649": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12131,
        12148
      ],
      "op": "AND",
      "path": "78"
    },
    "2650": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12131,
        12148
      ],
      "op": "EQ",
      "path": "78"
    },
    "2651": {
      "branch": 60,
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12131,
        12148
      ],
      "op": "ISZERO",
      "path": "78"
    },
    "2652": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12123,
        12178
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xAA7"
    },
    "2655": {
      "branch": 60,
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12123,
        12178
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "2656": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12123,
        12178
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "2658": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12123,
        12178
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "2659": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "2663": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "2665": {
      "op": "SHL"
    },
    "2666": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12123,
        12178
      ],
      "op": "DUP2",
      "path": "78"
    },
    "2667": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12123,
        12178
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "2668": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2670": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12123,
        12178
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "2672": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12123,
        12178
      ],
      "op": "DUP3",
      "path": "78"
    },
    "2673": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12123,
        12178
      ],
      "op": "ADD",
      "path": "78"
    },
    "2674": {
      "op": "MSTORE"
    },
    "2675": {
      "op": "PUSH1",
      "value": "0x19"
    },
    "2677": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "2679": {
      "op": "DUP3"
    },
    "2680": {
      "op": "ADD"
    },
    "2681": {
      "op": "MSTORE"
    },
    "2682": {
      "op": "PUSH32",
      "value": "0x4552433732313A20617070726F766520746F2063616C6C657200000000000000"
    },
    "2715": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "2717": {
      "op": "DUP3"
    },
    "2718": {
      "op": "ADD"
    },
    "2719": {
      "op": "MSTORE"
    },
    "2720": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "2722": {
      "op": "ADD"
    },
    "2723": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12123,
        12178
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x381"
    },
    "2726": {
      "op": "JUMP"
    },
    "2727": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12123,
        12178
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "2728": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2730": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2732": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2734": {
      "op": "SHL"
    },
    "2735": {
      "op": "SUB"
    },
    "2736": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12213
      ],
      "op": "DUP4",
      "path": "78",
      "statement": 36
    },
    "2737": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12213
      ],
      "op": "DUP2",
      "path": "78"
    },
    "2738": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12213
      ],
      "op": "AND",
      "path": "78"
    },
    "2739": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12213
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "2741": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12213
      ],
      "op": "DUP2",
      "path": "78"
    },
    "2742": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12213
      ],
      "op": "DUP2",
      "path": "78"
    },
    "2743": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12213
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "2744": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12206
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x6A"
    },
    "2746": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12213
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "2748": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12213
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2749": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12213
      ],
      "op": "DUP2",
      "path": "78"
    },
    "2750": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12213
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "2751": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12213
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "2753": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12213
      ],
      "op": "DUP1",
      "path": "78"
    },
    "2754": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12213
      ],
      "op": "DUP4",
      "path": "78"
    },
    "2755": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12213
      ],
      "op": "KECCAK256",
      "path": "78"
    },
    "2756": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12223
      ],
      "op": "SWAP5",
      "path": "78"
    },
    "2757": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12223
      ],
      "op": "DUP8",
      "path": "78"
    },
    "2758": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12223
      ],
      "op": "AND",
      "path": "78"
    },
    "2759": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12223
      ],
      "op": "DUP1",
      "path": "78"
    },
    "2760": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12223
      ],
      "op": "DUP5",
      "path": "78"
    },
    "2761": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12223
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "2762": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12223
      ],
      "op": "SWAP5",
      "path": "78"
    },
    "2763": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12223
      ],
      "op": "DUP3",
      "path": "78"
    },
    "2764": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12223
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "2765": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12223
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "2766": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12223
      ],
      "op": "DUP3",
      "path": "78"
    },
    "2767": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12223
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2768": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12223
      ],
      "op": "KECCAK256",
      "path": "78"
    },
    "2769": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12234
      ],
      "op": "DUP1",
      "path": "78"
    },
    "2770": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12234
      ],
      "op": "SLOAD",
      "path": "78"
    },
    "2771": {
      "op": "PUSH1",
      "value": "0xFF"
    },
    "2773": {
      "op": "NOT"
    },
    "2774": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12234
      ],
      "op": "AND",
      "path": "78"
    },
    "2775": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12234
      ],
      "op": "DUP7",
      "path": "78"
    },
    "2776": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12234
      ],
      "op": "ISZERO",
      "path": "78"
    },
    "2777": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12234
      ],
      "op": "ISZERO",
      "path": "78"
    },
    "2778": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12234
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2779": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12234
      ],
      "op": "DUP2",
      "path": "78"
    },
    "2780": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12234
      ],
      "op": "OR",
      "path": "78"
    },
    "2781": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12234
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2782": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12234
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "2783": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12188,
        12234
      ],
      "op": "SSTORE",
      "path": "78"
    },
    "2784": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12249,
        12290
      ],
      "op": "SWAP2",
      "path": "78",
      "statement": 37
    },
    "2785": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12249,
        12290
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "2786": {
      "op": "SWAP2"
    },
    "2787": {
      "op": "DUP3"
    },
    "2788": {
      "op": "MSTORE"
    },
    "2789": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12249,
        12290
      ],
      "op": "PUSH32",
      "path": "78",
      "value": "0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31"
    },
    "2822": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12249,
        12290
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "2823": {
      "op": "ADD"
    },
    "2824": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12249,
        12290
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "2826": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12249,
        12290
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "2827": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12249,
        12290
      ],
      "op": "DUP1",
      "path": "78"
    },
    "2828": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12249,
        12290
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "2829": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12249,
        12290
      ],
      "op": "SUB",
      "path": "78"
    },
    "2830": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12249,
        12290
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2831": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        12249,
        12290
      ],
      "op": "LOG3",
      "path": "78"
    },
    "2832": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        11990,
        12297
      ],
      "op": "POP",
      "path": "78"
    },
    "2833": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        11990,
        12297
      ],
      "op": "POP",
      "path": "78"
    },
    "2834": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "offset": [
        11990,
        12297
      ],
      "op": "POP",
      "path": "78"
    },
    "2835": {
      "fn": "ERC721Upgradeable._setApprovalForAll",
      "jump": "o",
      "offset": [
        11990,
        12297
      ],
      "op": "JUMP",
      "path": "78"
    },
    "2836": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7021,
        7328
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "2837": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7172,
        7200
      ],
      "op": "PUSH2",
      "path": "78",
      "statement": 38,
      "value": "0xB1F"
    },
    "2840": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7182,
        7186
      ],
      "op": "DUP5",
      "path": "78"
    },
    "2841": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7188,
        7190
      ],
      "op": "DUP5",
      "path": "78"
    },
    "2842": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7192,
        7199
      ],
      "op": "DUP5",
      "path": "78"
    },
    "2843": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7172,
        7181
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x8A9"
    },
    "2846": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "jump": "i",
      "offset": [
        7172,
        7200
      ],
      "op": "JUMP",
      "path": "78"
    },
    "2847": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7172,
        7200
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "2848": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7218,
        7266
      ],
      "op": "PUSH2",
      "path": "78",
      "statement": 39,
      "value": "0xB2B"
    },
    "2851": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7241,
        7245
      ],
      "op": "DUP5",
      "path": "78"
    },
    "2852": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7247,
        7249
      ],
      "op": "DUP5",
      "path": "78"
    },
    "2853": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7251,
        7258
      ],
      "op": "DUP5",
      "path": "78"
    },
    "2854": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7260,
        7265
      ],
      "op": "DUP5",
      "path": "78"
    },
    "2855": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7218,
        7240
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xC45"
    },
    "2858": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "jump": "i",
      "offset": [
        7218,
        7266
      ],
      "op": "JUMP",
      "path": "78"
    },
    "2859": {
      "branch": 61,
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7218,
        7266
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "2860": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7210,
        7321
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x656"
    },
    "2863": {
      "branch": 61,
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7210,
        7321
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "2864": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7210,
        7321
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "2866": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7210,
        7321
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "2867": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "2871": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "2873": {
      "op": "SHL"
    },
    "2874": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7210,
        7321
      ],
      "op": "DUP2",
      "path": "78"
    },
    "2875": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7210,
        7321
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "2876": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7210,
        7321
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "2878": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7210,
        7321
      ],
      "op": "ADD",
      "path": "78"
    },
    "2879": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7210,
        7321
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x381"
    },
    "2882": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7210,
        7321
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "2883": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "offset": [
        7210,
        7321
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x1038"
    },
    "2886": {
      "fn": "ERC721Upgradeable._safeTransfer",
      "jump": "i",
      "offset": [
        7210,
        7321
      ],
      "op": "JUMP",
      "path": "78"
    },
    "2887": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        339,
        1042
      ],
      "op": "JUMPDEST",
      "path": "86"
    },
    "2888": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        395,
        408
      ],
      "op": "PUSH1",
      "path": "86",
      "value": "0x60"
    },
    "2890": {
      "branch": 62,
      "fn": "StringsUpgradeable.toString",
      "offset": [
        612,
        622
      ],
      "op": "DUP2",
      "path": "86"
    },
    "2891": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        608,
        659
      ],
      "op": "PUSH2",
      "path": "86",
      "value": "0xB6B"
    },
    "2894": {
      "branch": 62,
      "fn": "StringsUpgradeable.toString",
      "offset": [
        608,
        659
      ],
      "op": "JUMPI",
      "path": "86"
    },
    "2895": {
      "op": "POP"
    },
    "2896": {
      "op": "POP"
    },
    "2897": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        638,
        648
      ],
      "op": "PUSH1",
      "path": "86",
      "statement": 40,
      "value": "0x40"
    },
    "2899": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        638,
        648
      ],
      "op": "DUP1",
      "path": "86"
    },
    "2900": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        638,
        648
      ],
      "op": "MLOAD",
      "path": "86"
    },
    "2901": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        638,
        648
      ],
      "op": "DUP1",
      "path": "86"
    },
    "2902": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        638,
        648
      ],
      "op": "DUP3",
      "path": "86"
    },
    "2903": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        638,
        648
      ],
      "op": "ADD",
      "path": "86"
    },
    "2904": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        638,
        648
      ],
      "op": "SWAP1",
      "path": "86"
    },
    "2905": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        638,
        648
      ],
      "op": "SWAP2",
      "path": "86"
    },
    "2906": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        638,
        648
      ],
      "op": "MSTORE",
      "path": "86"
    },
    "2907": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        638,
        648
      ],
      "op": "PUSH1",
      "path": "86",
      "value": "0x1"
    },
    "2909": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        638,
        648
      ],
      "op": "DUP2",
      "path": "86"
    },
    "2910": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        638,
        648
      ],
      "op": "MSTORE",
      "path": "86"
    },
    "2911": {
      "op": "PUSH1",
      "value": "0x3"
    },
    "2913": {
      "op": "PUSH1",
      "value": "0xFC"
    },
    "2915": {
      "op": "SHL"
    },
    "2916": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        638,
        648
      ],
      "op": "PUSH1",
      "path": "86",
      "value": "0x20"
    },
    "2918": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        638,
        648
      ],
      "op": "DUP3",
      "path": "86"
    },
    "2919": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        638,
        648
      ],
      "op": "ADD",
      "path": "86"
    },
    "2920": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        638,
        648
      ],
      "op": "MSTORE",
      "path": "86"
    },
    "2921": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        638,
        648
      ],
      "op": "SWAP1",
      "path": "86"
    },
    "2922": {
      "fn": "StringsUpgradeable.toString",
      "jump": "o",
      "offset": [
        339,
        1042
      ],
      "op": "JUMP",
      "path": "86"
    },
    "2923": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        608,
        659
      ],
      "op": "JUMPDEST",
      "path": "86"
    },
    "2924": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        683,
        688
      ],
      "op": "DUP2",
      "path": "86"
    },
    "2925": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        668,
        680
      ],
      "op": "PUSH1",
      "path": "86",
      "value": "0x0"
    },
    "2927": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        722,
        797
      ],
      "op": "JUMPDEST",
      "path": "86"
    },
    "2928": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        729,
        738
      ],
      "op": "DUP2",
      "path": "86"
    },
    "2929": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        729,
        738
      ],
      "op": "ISZERO",
      "path": "86"
    },
    "2930": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        722,
        797
      ],
      "op": "PUSH2",
      "path": "86",
      "value": "0xB95"
    },
    "2933": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        722,
        797
      ],
      "op": "JUMPI",
      "path": "86"
    },
    "2934": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        754,
        762
      ],
      "op": "DUP1",
      "path": "86",
      "statement": 41
    },
    "2935": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        754,
        762
      ],
      "op": "PUSH2",
      "path": "86",
      "value": "0xB7F"
    },
    "2938": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        754,
        762
      ],
      "op": "DUP2",
      "path": "86"
    },
    "2939": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        754,
        762
      ],
      "op": "PUSH2",
      "path": "86",
      "value": "0x1185"
    },
    "2942": {
      "fn": "StringsUpgradeable.toString",
      "jump": "i",
      "offset": [
        754,
        762
      ],
      "op": "JUMP",
      "path": "86"
    },
    "2943": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        754,
        762
      ],
      "op": "JUMPDEST",
      "path": "86"
    },
    "2944": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        754,
        762
      ],
      "op": "SWAP2",
      "path": "86"
    },
    "2945": {
      "op": "POP"
    },
    "2946": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        776,
        786
      ],
      "op": "PUSH2",
      "path": "86",
      "statement": 42,
      "value": "0xB8E"
    },
    "2949": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        776,
        786
      ],
      "op": "SWAP1",
      "path": "86"
    },
    "2950": {
      "op": "POP"
    },
    "2951": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        784,
        786
      ],
      "op": "PUSH1",
      "path": "86",
      "value": "0xA"
    },
    "2953": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        776,
        786
      ],
      "op": "DUP4",
      "path": "86"
    },
    "2954": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        776,
        786
      ],
      "op": "PUSH2",
      "path": "86",
      "value": "0x10F3"
    },
    "2957": {
      "fn": "StringsUpgradeable.toString",
      "jump": "i",
      "offset": [
        776,
        786
      ],
      "op": "JUMP",
      "path": "86"
    },
    "2958": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        776,
        786
      ],
      "op": "JUMPDEST",
      "path": "86"
    },
    "2959": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        776,
        786
      ],
      "op": "SWAP2",
      "path": "86"
    },
    "2960": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        776,
        786
      ],
      "op": "POP",
      "path": "86"
    },
    "2961": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        722,
        797
      ],
      "op": "PUSH2",
      "path": "86",
      "value": "0xB6F"
    },
    "2964": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        722,
        797
      ],
      "op": "JUMP",
      "path": "86"
    },
    "2965": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        722,
        797
      ],
      "op": "JUMPDEST",
      "path": "86"
    },
    "2966": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        806,
        825
      ],
      "op": "PUSH1",
      "path": "86",
      "value": "0x0"
    },
    "2968": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        838,
        844
      ],
      "op": "DUP2",
      "path": "86"
    },
    "2969": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "PUSH8",
      "path": "86",
      "value": "0xFFFFFFFFFFFFFFFF"
    },
    "2978": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "DUP2",
      "path": "86"
    },
    "2979": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "GT",
      "path": "86"
    },
    "2980": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "ISZERO",
      "path": "86"
    },
    "2981": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "PUSH2",
      "path": "86",
      "value": "0xBB0"
    },
    "2984": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "JUMPI",
      "path": "86"
    },
    "2985": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "PUSH2",
      "path": "86",
      "value": "0xBB0"
    },
    "2988": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "PUSH2",
      "path": "86",
      "value": "0x11F6"
    },
    "2991": {
      "fn": "StringsUpgradeable.toString",
      "jump": "i",
      "offset": [
        828,
        845
      ],
      "op": "JUMP",
      "path": "86"
    },
    "2992": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "JUMPDEST",
      "path": "86"
    },
    "2993": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "PUSH1",
      "path": "86",
      "value": "0x40"
    },
    "2995": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "MLOAD",
      "path": "86"
    },
    "2996": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "SWAP1",
      "path": "86"
    },
    "2997": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "DUP1",
      "path": "86"
    },
    "2998": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "DUP3",
      "path": "86"
    },
    "2999": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "MSTORE",
      "path": "86"
    },
    "3000": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "DUP1",
      "path": "86"
    },
    "3001": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "PUSH1",
      "path": "86",
      "value": "0x1F"
    },
    "3003": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "ADD",
      "path": "86"
    },
    "3004": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "PUSH1",
      "path": "86",
      "value": "0x1F"
    },
    "3006": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "NOT",
      "path": "86"
    },
    "3007": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "AND",
      "path": "86"
    },
    "3008": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "PUSH1",
      "path": "86",
      "value": "0x20"
    },
    "3010": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "ADD",
      "path": "86"
    },
    "3011": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "DUP3",
      "path": "86"
    },
    "3012": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "ADD",
      "path": "86"
    },
    "3013": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "PUSH1",
      "path": "86",
      "value": "0x40"
    },
    "3015": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "MSTORE",
      "path": "86"
    },
    "3016": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "DUP1",
      "path": "86"
    },
    "3017": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "ISZERO",
      "path": "86"
    },
    "3018": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "PUSH2",
      "path": "86",
      "value": "0xBDA"
    },
    "3021": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "JUMPI",
      "path": "86"
    },
    "3022": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "PUSH1",
      "path": "86",
      "value": "0x20"
    },
    "3024": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "DUP3",
      "path": "86"
    },
    "3025": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "ADD",
      "path": "86"
    },
    "3026": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "DUP2",
      "path": "86"
    },
    "3027": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "DUP1",
      "path": "86"
    },
    "3028": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "CALLDATASIZE",
      "path": "86"
    },
    "3029": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "DUP4",
      "path": "86"
    },
    "3030": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "CALLDATACOPY",
      "path": "86"
    },
    "3031": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "ADD",
      "path": "86"
    },
    "3032": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "SWAP1",
      "path": "86"
    },
    "3033": {
      "op": "POP"
    },
    "3034": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "JUMPDEST",
      "path": "86"
    },
    "3035": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        828,
        845
      ],
      "op": "POP",
      "path": "86"
    },
    "3036": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        806,
        845
      ],
      "op": "SWAP1",
      "path": "86"
    },
    "3037": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        806,
        845
      ],
      "op": "POP",
      "path": "86"
    },
    "3038": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        855,
        1005
      ],
      "op": "JUMPDEST",
      "path": "86"
    },
    "3039": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        862,
        872
      ],
      "op": "DUP5",
      "path": "86"
    },
    "3040": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        862,
        872
      ],
      "op": "ISZERO",
      "path": "86"
    },
    "3041": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        855,
        1005
      ],
      "op": "PUSH2",
      "path": "86",
      "value": "0x8A1"
    },
    "3044": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        855,
        1005
      ],
      "op": "JUMPI",
      "path": "86"
    },
    "3045": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        888,
        899
      ],
      "op": "PUSH2",
      "path": "86",
      "statement": 43,
      "value": "0xBEF"
    },
    "3048": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        898,
        899
      ],
      "op": "PUSH1",
      "path": "86",
      "value": "0x1"
    },
    "3050": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        888,
        899
      ],
      "op": "DUP4",
      "path": "86"
    },
    "3051": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        888,
        899
      ],
      "op": "PUSH2",
      "path": "86",
      "value": "0x1107"
    },
    "3054": {
      "fn": "StringsUpgradeable.toString",
      "jump": "i",
      "offset": [
        888,
        899
      ],
      "op": "JUMP",
      "path": "86"
    },
    "3055": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        888,
        899
      ],
      "op": "JUMPDEST",
      "path": "86"
    },
    "3056": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        888,
        899
      ],
      "op": "SWAP2",
      "path": "86"
    },
    "3057": {
      "op": "POP"
    },
    "3058": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        956,
        966
      ],
      "op": "PUSH2",
      "path": "86",
      "statement": 44,
      "value": "0xBFC"
    },
    "3061": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        964,
        966
      ],
      "op": "PUSH1",
      "path": "86",
      "value": "0xA"
    },
    "3063": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        956,
        961
      ],
      "op": "DUP7",
      "path": "86"
    },
    "3064": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        956,
        966
      ],
      "op": "PUSH2",
      "path": "86",
      "value": "0x11A0"
    },
    "3067": {
      "fn": "StringsUpgradeable.toString",
      "jump": "i",
      "offset": [
        956,
        966
      ],
      "op": "JUMP",
      "path": "86"
    },
    "3068": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        956,
        966
      ],
      "op": "JUMPDEST",
      "path": "86"
    },
    "3069": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        943,
        967
      ],
      "op": "PUSH2",
      "path": "86",
      "value": "0xC07"
    },
    "3072": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        943,
        967
      ],
      "op": "SWAP1",
      "path": "86"
    },
    "3073": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        943,
        945
      ],
      "op": "PUSH1",
      "path": "86",
      "value": "0x30"
    },
    "3075": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        943,
        967
      ],
      "op": "PUSH2",
      "path": "86",
      "value": "0x10DB"
    },
    "3078": {
      "fn": "StringsUpgradeable.toString",
      "jump": "i",
      "offset": [
        943,
        967
      ],
      "op": "JUMP",
      "path": "86"
    },
    "3079": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        943,
        967
      ],
      "op": "JUMPDEST",
      "path": "86"
    },
    "3080": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        930,
        969
      ],
      "op": "PUSH1",
      "path": "86",
      "value": "0xF8"
    },
    "3082": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        930,
        969
      ],
      "op": "SHL",
      "path": "86"
    },
    "3083": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        919
      ],
      "op": "DUP2",
      "path": "86"
    },
    "3084": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        920,
        926
      ],
      "op": "DUP4",
      "path": "86"
    },
    "3085": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        927
      ],
      "op": "DUP2",
      "path": "86"
    },
    "3086": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        927
      ],
      "op": "MLOAD",
      "path": "86"
    },
    "3087": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        927
      ],
      "op": "DUP2",
      "path": "86"
    },
    "3088": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        927
      ],
      "op": "LT",
      "path": "86"
    },
    "3089": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        927
      ],
      "op": "PUSH2",
      "path": "86",
      "value": "0xC1C"
    },
    "3092": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        927
      ],
      "op": "JUMPI",
      "path": "86"
    },
    "3093": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        927
      ],
      "op": "PUSH2",
      "path": "86",
      "value": "0xC1C"
    },
    "3096": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        927
      ],
      "op": "PUSH2",
      "path": "86",
      "value": "0x11E0"
    },
    "3099": {
      "fn": "StringsUpgradeable.toString",
      "jump": "i",
      "offset": [
        913,
        927
      ],
      "op": "JUMP",
      "path": "86"
    },
    "3100": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        927
      ],
      "op": "JUMPDEST",
      "path": "86"
    },
    "3101": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        927
      ],
      "op": "PUSH1",
      "path": "86",
      "value": "0x20"
    },
    "3103": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        927
      ],
      "op": "ADD",
      "path": "86"
    },
    "3104": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        927
      ],
      "op": "ADD",
      "path": "86"
    },
    "3105": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        969
      ],
      "op": "SWAP1",
      "path": "86"
    },
    "3106": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "3108": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "3110": {
      "op": "PUSH1",
      "value": "0xF8"
    },
    "3112": {
      "op": "SHL"
    },
    "3113": {
      "op": "SUB"
    },
    "3114": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        969
      ],
      "op": "NOT",
      "path": "86"
    },
    "3115": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        969
      ],
      "op": "AND",
      "path": "86"
    },
    "3116": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        969
      ],
      "op": "SWAP1",
      "path": "86"
    },
    "3117": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        969
      ],
      "op": "DUP2",
      "path": "86"
    },
    "3118": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        969
      ],
      "op": "PUSH1",
      "path": "86",
      "value": "0x0"
    },
    "3120": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        969
      ],
      "op": "BYTE",
      "path": "86"
    },
    "3121": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        969
      ],
      "op": "SWAP1",
      "path": "86"
    },
    "3122": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        913,
        969
      ],
      "op": "MSTORE8",
      "path": "86"
    },
    "3123": {
      "op": "POP"
    },
    "3124": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        983,
        994
      ],
      "op": "PUSH2",
      "path": "86",
      "statement": 45,
      "value": "0xC3E"
    },
    "3127": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        992,
        994
      ],
      "op": "PUSH1",
      "path": "86",
      "value": "0xA"
    },
    "3129": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        983,
        994
      ],
      "op": "DUP7",
      "path": "86"
    },
    "3130": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        983,
        994
      ],
      "op": "PUSH2",
      "path": "86",
      "value": "0x10F3"
    },
    "3133": {
      "fn": "StringsUpgradeable.toString",
      "jump": "i",
      "offset": [
        983,
        994
      ],
      "op": "JUMP",
      "path": "86"
    },
    "3134": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        983,
        994
      ],
      "op": "JUMPDEST",
      "path": "86"
    },
    "3135": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        983,
        994
      ],
      "op": "SWAP5",
      "path": "86"
    },
    "3136": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        983,
        994
      ],
      "op": "POP",
      "path": "86"
    },
    "3137": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        855,
        1005
      ],
      "op": "PUSH2",
      "path": "86",
      "value": "0xBDE"
    },
    "3140": {
      "fn": "StringsUpgradeable.toString",
      "offset": [
        855,
        1005
      ],
      "op": "JUMP",
      "path": "86"
    },
    "3141": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        12850,
        13650
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "3142": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13000,
        13004
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "3144": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "3146": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "3148": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "3150": {
      "op": "SHL"
    },
    "3151": {
      "op": "SUB"
    },
    "3152": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13020,
        13033
      ],
      "op": "DUP5",
      "path": "78"
    },
    "3153": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13020,
        13033
      ],
      "op": "AND",
      "path": "78"
    },
    "3154": {
      "fn": "AddressUpgradeable.isContract",
      "offset": [
        1476,
        1495
      ],
      "op": "EXTCODESIZE",
      "path": "82",
      "statement": 46
    },
    "3155": {
      "fn": "AddressUpgradeable.isContract",
      "offset": [
        1476,
        1499
      ],
      "op": "ISZERO",
      "path": "82"
    },
    "3156": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13016,
        13644
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xD47"
    },
    "3159": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13016,
        13644
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "3160": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "3162": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "3163": {
      "op": "PUSH4",
      "value": "0xA85BD01"
    },
    "3168": {
      "op": "PUSH1",
      "value": "0xE1"
    },
    "3170": {
      "op": "SHL"
    },
    "3171": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "DUP2",
      "path": "78"
    },
    "3172": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "3173": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "3175": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "3177": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "3179": {
      "op": "SHL"
    },
    "3180": {
      "op": "SUB"
    },
    "3181": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13102
      ],
      "op": "DUP6",
      "path": "78"
    },
    "3182": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13102
      ],
      "op": "AND",
      "path": "78"
    },
    "3183": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13102
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "3184": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13102
      ],
      "op": "PUSH4",
      "path": "78",
      "value": "0x150B7A02"
    },
    "3189": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13102
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "3190": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xC89"
    },
    "3193": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "3194": {
      "fn": "ContextUpgradeable._msgSender",
      "offset": [
        929,
        939
      ],
      "op": "CALLER",
      "path": "83"
    },
    "3195": {
      "fn": "ContextUpgradeable._msgSender",
      "offset": [
        929,
        939
      ],
      "op": "SWAP1",
      "path": "83"
    },
    "3196": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13117,
        13121
      ],
      "op": "DUP10",
      "path": "78"
    },
    "3197": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13117,
        13121
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "3198": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13123,
        13130
      ],
      "op": "DUP9",
      "path": "78"
    },
    "3199": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13123,
        13130
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "3200": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13132,
        13137
      ],
      "op": "DUP9",
      "path": "78"
    },
    "3201": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13132,
        13137
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "3202": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "3204": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "ADD",
      "path": "78"
    },
    "3205": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xFE8"
    },
    "3208": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "jump": "i",
      "offset": [
        13055,
        13138
      ],
      "op": "JUMP",
      "path": "78"
    },
    "3209": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "3210": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "3212": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "3214": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "3215": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "DUP1",
      "path": "78"
    },
    "3216": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "DUP4",
      "path": "78"
    },
    "3217": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "SUB",
      "path": "78"
    },
    "3218": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "DUP2",
      "path": "78"
    },
    "3219": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "3221": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "DUP8",
      "path": "78"
    },
    "3222": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "DUP1",
      "path": "78"
    },
    "3223": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "EXTCODESIZE",
      "path": "78"
    },
    "3224": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "ISZERO",
      "path": "78"
    },
    "3225": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "DUP1",
      "path": "78"
    },
    "3226": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "ISZERO",
      "path": "78"
    },
    "3227": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xCA3"
    },
    "3230": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "3231": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "3233": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "DUP1",
      "path": "78"
    },
    "3234": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "REVERT",
      "path": "78"
    },
    "3235": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "3236": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "POP",
      "path": "78"
    },
    "3237": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "GAS",
      "path": "78"
    },
    "3238": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "CALL",
      "path": "78"
    },
    "3239": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "SWAP3",
      "path": "78"
    },
    "3240": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "POP",
      "path": "78"
    },
    "3241": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "POP",
      "path": "78"
    },
    "3242": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "POP",
      "path": "78"
    },
    "3243": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "DUP1",
      "path": "78"
    },
    "3244": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "ISZERO",
      "path": "78"
    },
    "3245": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xCD3"
    },
    "3248": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "3249": {
      "op": "POP"
    },
    "3250": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "3252": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "DUP1",
      "path": "78"
    },
    "3253": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "3254": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x1F"
    },
    "3256": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "RETURNDATASIZE",
      "path": "78"
    },
    "3257": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "3258": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "DUP2",
      "path": "78"
    },
    "3259": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "ADD",
      "path": "78"
    },
    "3260": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "3262": {
      "op": "NOT"
    },
    "3263": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "AND",
      "path": "78"
    },
    "3264": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "DUP3",
      "path": "78"
    },
    "3265": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "ADD",
      "path": "78"
    },
    "3266": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "3267": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "SWAP3",
      "path": "78"
    },
    "3268": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "3269": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xCD0"
    },
    "3272": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "3273": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "DUP2",
      "path": "78"
    },
    "3274": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "ADD",
      "path": "78"
    },
    "3275": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "3276": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xF57"
    },
    "3279": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "jump": "i",
      "offset": [
        13055,
        13138
      ],
      "op": "JUMP",
      "path": "78"
    },
    "3280": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "3281": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x1"
    },
    "3283": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13055,
        13138
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "3284": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xD2D"
    },
    "3287": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "3288": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "RETURNDATASIZE",
      "path": "78"
    },
    "3289": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "DUP1",
      "path": "78"
    },
    "3290": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "DUP1",
      "path": "78"
    },
    "3291": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "ISZERO",
      "path": "78"
    },
    "3292": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xD01"
    },
    "3295": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "3296": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "3298": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "3299": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "3300": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "POP",
      "path": "78"
    },
    "3301": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x1F"
    },
    "3303": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "NOT",
      "path": "78"
    },
    "3304": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x3F"
    },
    "3306": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "RETURNDATASIZE",
      "path": "78"
    },
    "3307": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "ADD",
      "path": "78"
    },
    "3308": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "AND",
      "path": "78"
    },
    "3309": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "DUP3",
      "path": "78"
    },
    "3310": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "ADD",
      "path": "78"
    },
    "3311": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x40"
    },
    "3313": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "3314": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "RETURNDATASIZE",
      "path": "78"
    },
    "3315": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "DUP3",
      "path": "78"
    },
    "3316": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "3317": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "RETURNDATASIZE",
      "path": "78"
    },
    "3318": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x0"
    },
    "3320": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "3322": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "DUP5",
      "path": "78"
    },
    "3323": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "ADD",
      "path": "78"
    },
    "3324": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "RETURNDATACOPY",
      "path": "78"
    },
    "3325": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xD06"
    },
    "3328": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "JUMP",
      "path": "78"
    },
    "3329": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "3330": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x60"
    },
    "3332": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "SWAP2",
      "path": "78"
    },
    "3333": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "POP",
      "path": "78"
    },
    "3334": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "3335": {
      "op": "POP"
    },
    "3336": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13316,
        13329
      ],
      "op": "DUP1",
      "path": "78"
    },
    "3337": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13316,
        13329
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "3338": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13312,
        13578
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0xD25"
    },
    "3341": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13312,
        13578
      ],
      "op": "JUMPI",
      "path": "78"
    },
    "3342": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13358,
        13418
      ],
      "op": "PUSH1",
      "path": "78",
      "statement": 47,
      "value": "0x40"
    },
    "3344": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13358,
        13418
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "3345": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "3349": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "3351": {
      "op": "SHL"
    },
    "3352": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13358,
        13418
      ],
      "op": "DUP2",
      "path": "78"
    },
    "3353": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13358,
        13418
      ],
      "op": "MSTORE",
      "path": "78"
    },
    "3354": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13358,
        13418
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x4"
    },
    "3356": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13358,
        13418
      ],
      "op": "ADD",
      "path": "78"
    },
    "3357": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13358,
        13418
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x381"
    },
    "3360": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13358,
        13418
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "3361": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13358,
        13418
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x1038"
    },
    "3364": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "jump": "i",
      "offset": [
        13358,
        13418
      ],
      "op": "JUMP",
      "path": "78"
    },
    "3365": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13312,
        13578
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "3366": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13530,
        13536
      ],
      "op": "DUP1",
      "path": "78"
    },
    "3367": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13524,
        13537
      ],
      "op": "MLOAD",
      "path": "78"
    },
    "3368": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13515,
        13521
      ],
      "op": "DUP2",
      "path": "78"
    },
    "3369": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13511,
        13513
      ],
      "op": "PUSH1",
      "path": "78",
      "value": "0x20"
    },
    "3371": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13507,
        13522
      ],
      "op": "ADD",
      "path": "78"
    },
    "3372": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13500,
        13538
      ],
      "op": "REVERT",
      "path": "78"
    },
    "3373": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13051,
        13592
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "3374": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "3376": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "3378": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "3380": {
      "op": "SHL"
    },
    "3381": {
      "op": "SUB"
    },
    "3382": {
      "op": "NOT"
    },
    "3383": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13188,
        13250
      ],
      "op": "AND",
      "path": "78",
      "statement": 48
    },
    "3384": {
      "op": "PUSH4",
      "value": "0xA85BD01"
    },
    "3389": {
      "op": "PUSH1",
      "value": "0xE1"
    },
    "3391": {
      "op": "SHL"
    },
    "3392": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13188,
        13250
      ],
      "op": "EQ",
      "path": "78"
    },
    "3393": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13188,
        13250
      ],
      "op": "SWAP1",
      "path": "78"
    },
    "3394": {
      "op": "POP"
    },
    "3395": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13181,
        13250
      ],
      "op": "PUSH2",
      "path": "78",
      "value": "0x8A1"
    },
    "3398": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13181,
        13250
      ],
      "op": "JUMP",
      "path": "78"
    },
    "3399": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13016,
        13644
      ],
      "op": "JUMPDEST",
      "path": "78"
    },
    "3400": {
      "op": "POP"
    },
    "3401": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        13629,
        13633
      ],
      "op": "PUSH1",
      "path": "78",
      "statement": 49,
      "value": "0x1"
    },
    "3403": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        12850,
        13650
      ],
      "op": "SWAP5",
      "path": "78"
    },
    "3404": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        12850,
        13650
      ],
      "op": "SWAP4",
      "path": "78"
    },
    "3405": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        12850,
        13650
      ],
      "op": "POP",
      "path": "78"
    },
    "3406": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        12850,
        13650
      ],
      "op": "POP",
      "path": "78"
    },
    "3407": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        12850,
        13650
      ],
      "op": "POP",
      "path": "78"
    },
    "3408": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "offset": [
        12850,
        13650
      ],
      "op": "POP",
      "path": "78"
    },
    "3409": {
      "fn": "ERC721Upgradeable._checkOnERC721Received",
      "jump": "o",
      "offset": [
        12850,
        13650
      ],
      "op": "JUMP",
      "path": "78"
    },
    "3410": {
      "op": "JUMPDEST"
    },
    "3411": {
      "op": "DUP1"
    },
    "3412": {
      "op": "CALLDATALOAD"
    },
    "3413": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "3415": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "3417": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "3419": {
      "op": "SHL"
    },
    "3420": {
      "op": "SUB"
    },
    "3421": {
      "op": "DUP2"
    },
    "3422": {
      "op": "AND"
    },
    "3423": {
      "op": "DUP2"
    },
    "3424": {
      "op": "EQ"
    },
    "3425": {
      "op": "PUSH2",
      "value": "0xD69"
    },
    "3428": {
      "op": "JUMPI"
    },
    "3429": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3431": {
      "op": "DUP1"
    },
    "3432": {
      "op": "REVERT"
    },
    "3433": {
      "op": "JUMPDEST"
    },
    "3434": {
      "op": "SWAP2"
    },
    "3435": {
      "op": "SWAP1"
    },
    "3436": {
      "op": "POP"
    },
    "3437": {
      "jump": "o",
      "op": "JUMP"
    },
    "3438": {
      "op": "JUMPDEST"
    },
    "3439": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3441": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "3443": {
      "op": "DUP3"
    },
    "3444": {
      "op": "DUP5"
    },
    "3445": {
      "op": "SUB"
    },
    "3446": {
      "op": "SLT"
    },
    "3447": {
      "op": "ISZERO"
    },
    "3448": {
      "op": "PUSH2",
      "value": "0xD80"
    },
    "3451": {
      "op": "JUMPI"
    },
    "3452": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3454": {
      "op": "DUP1"
    },
    "3455": {
      "op": "REVERT"
    },
    "3456": {
      "op": "JUMPDEST"
    },
    "3457": {
      "op": "PUSH2",
      "value": "0x73D"
    },
    "3460": {
      "op": "DUP3"
    },
    "3461": {
      "op": "PUSH2",
      "value": "0xD52"
    },
    "3464": {
      "jump": "i",
      "op": "JUMP"
    },
    "3465": {
      "op": "JUMPDEST"
    },
    "3466": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3468": {
      "op": "DUP1"
    },
    "3469": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "3471": {
      "op": "DUP4"
    },
    "3472": {
      "op": "DUP6"
    },
    "3473": {
      "op": "SUB"
    },
    "3474": {
      "op": "SLT"
    },
    "3475": {
      "op": "ISZERO"
    },
    "3476": {
      "op": "PUSH2",
      "value": "0xD9C"
    },
    "3479": {
      "op": "JUMPI"
    },
    "3480": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3482": {
      "op": "DUP1"
    },
    "3483": {
      "op": "REVERT"
    },
    "3484": {
      "op": "JUMPDEST"
    },
    "3485": {
      "op": "PUSH2",
      "value": "0xDA5"
    },
    "3488": {
      "op": "DUP4"
    },
    "3489": {
      "op": "PUSH2",
      "value": "0xD52"
    },
    "3492": {
      "jump": "i",
      "op": "JUMP"
    },
    "3493": {
      "op": "JUMPDEST"
    },
    "3494": {
      "op": "SWAP2"
    },
    "3495": {
      "op": "POP"
    },
    "3496": {
      "op": "PUSH2",
      "value": "0xDB3"
    },
    "3499": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "3501": {
      "op": "DUP5"
    },
    "3502": {
      "op": "ADD"
    },
    "3503": {
      "op": "PUSH2",
      "value": "0xD52"
    },
    "3506": {
      "jump": "i",
      "op": "JUMP"
    },
    "3507": {
      "op": "JUMPDEST"
    },
    "3508": {
      "op": "SWAP1"
    },
    "3509": {
      "op": "POP"
    },
    "3510": {
      "op": "SWAP3"
    },
    "3511": {
      "op": "POP"
    },
    "3512": {
      "op": "SWAP3"
    },
    "3513": {
      "op": "SWAP1"
    },
    "3514": {
      "op": "POP"
    },
    "3515": {
      "jump": "o",
      "op": "JUMP"
    },
    "3516": {
      "op": "JUMPDEST"
    },
    "3517": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3519": {
      "op": "DUP1"
    },
    "3520": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3522": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "3524": {
      "op": "DUP5"
    },
    "3525": {
      "op": "DUP7"
    },
    "3526": {
      "op": "SUB"
    },
    "3527": {
      "op": "SLT"
    },
    "3528": {
      "op": "ISZERO"
    },
    "3529": {
      "op": "PUSH2",
      "value": "0xDD1"
    },
    "3532": {
      "op": "JUMPI"
    },
    "3533": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3535": {
      "op": "DUP1"
    },
    "3536": {
      "op": "REVERT"
    },
    "3537": {
      "op": "JUMPDEST"
    },
    "3538": {
      "op": "PUSH2",
      "value": "0xDDA"
    },
    "3541": {
      "op": "DUP5"
    },
    "3542": {
      "op": "PUSH2",
      "value": "0xD52"
    },
    "3545": {
      "jump": "i",
      "op": "JUMP"
    },
    "3546": {
      "op": "JUMPDEST"
    },
    "3547": {
      "op": "SWAP3"
    },
    "3548": {
      "op": "POP"
    },
    "3549": {
      "op": "PUSH2",
      "value": "0xDE8"
    },
    "3552": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "3554": {
      "op": "DUP6"
    },
    "3555": {
      "op": "ADD"
    },
    "3556": {
      "op": "PUSH2",
      "value": "0xD52"
    },
    "3559": {
      "jump": "i",
      "op": "JUMP"
    },
    "3560": {
      "op": "JUMPDEST"
    },
    "3561": {
      "op": "SWAP2"
    },
    "3562": {
      "op": "POP"
    },
    "3563": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "3565": {
      "op": "DUP5"
    },
    "3566": {
      "op": "ADD"
    },
    "3567": {
      "op": "CALLDATALOAD"
    },
    "3568": {
      "op": "SWAP1"
    },
    "3569": {
      "op": "POP"
    },
    "3570": {
      "op": "SWAP3"
    },
    "3571": {
      "op": "POP"
    },
    "3572": {
      "op": "SWAP3"
    },
    "3573": {
      "op": "POP"
    },
    "3574": {
      "op": "SWAP3"
    },
    "3575": {
      "jump": "o",
      "op": "JUMP"
    },
    "3576": {
      "op": "JUMPDEST"
    },
    "3577": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3579": {
      "op": "DUP1"
    },
    "3580": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3582": {
      "op": "DUP1"
    },
    "3583": {
      "op": "PUSH1",
      "value": "0x80"
    },
    "3585": {
      "op": "DUP6"
    },
    "3586": {
      "op": "DUP8"
    },
    "3587": {
      "op": "SUB"
    },
    "3588": {
      "op": "SLT"
    },
    "3589": {
      "op": "ISZERO"
    },
    "3590": {
      "op": "PUSH2",
      "value": "0xE0E"
    },
    "3593": {
      "op": "JUMPI"
    },
    "3594": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3596": {
      "op": "DUP1"
    },
    "3597": {
      "op": "REVERT"
    },
    "3598": {
      "op": "JUMPDEST"
    },
    "3599": {
      "op": "PUSH2",
      "value": "0xE17"
    },
    "3602": {
      "op": "DUP6"
    },
    "3603": {
      "op": "PUSH2",
      "value": "0xD52"
    },
    "3606": {
      "jump": "i",
      "op": "JUMP"
    },
    "3607": {
      "op": "JUMPDEST"
    },
    "3608": {
      "op": "SWAP4"
    },
    "3609": {
      "op": "POP"
    },
    "3610": {
      "op": "PUSH2",
      "value": "0xE25"
    },
    "3613": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "3615": {
      "op": "DUP7"
    },
    "3616": {
      "op": "ADD"
    },
    "3617": {
      "op": "PUSH2",
      "value": "0xD52"
    },
    "3620": {
      "jump": "i",
      "op": "JUMP"
    },
    "3621": {
      "op": "JUMPDEST"
    },
    "3622": {
      "op": "SWAP3"
    },
    "3623": {
      "op": "POP"
    },
    "3624": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "3626": {
      "op": "DUP6"
    },
    "3627": {
      "op": "ADD"
    },
    "3628": {
      "op": "CALLDATALOAD"
    },
    "3629": {
      "op": "SWAP2"
    },
    "3630": {
      "op": "POP"
    },
    "3631": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "3633": {
      "op": "DUP6"
    },
    "3634": {
      "op": "ADD"
    },
    "3635": {
      "op": "CALLDATALOAD"
    },
    "3636": {
      "op": "PUSH8",
      "value": "0xFFFFFFFFFFFFFFFF"
    },
    "3645": {
      "op": "DUP1"
    },
    "3646": {
      "op": "DUP3"
    },
    "3647": {
      "op": "GT"
    },
    "3648": {
      "op": "ISZERO"
    },
    "3649": {
      "op": "PUSH2",
      "value": "0xE49"
    },
    "3652": {
      "op": "JUMPI"
    },
    "3653": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3655": {
      "op": "DUP1"
    },
    "3656": {
      "op": "REVERT"
    },
    "3657": {
      "op": "JUMPDEST"
    },
    "3658": {
      "op": "DUP2"
    },
    "3659": {
      "op": "DUP8"
    },
    "3660": {
      "op": "ADD"
    },
    "3661": {
      "op": "SWAP2"
    },
    "3662": {
      "op": "POP"
    },
    "3663": {
      "op": "DUP8"
    },
    "3664": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "3666": {
      "op": "DUP4"
    },
    "3667": {
      "op": "ADD"
    },
    "3668": {
      "op": "SLT"
    },
    "3669": {
      "op": "PUSH2",
      "value": "0xE5D"
    },
    "3672": {
      "op": "JUMPI"
    },
    "3673": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3675": {
      "op": "DUP1"
    },
    "3676": {
      "op": "REVERT"
    },
    "3677": {
      "op": "JUMPDEST"
    },
    "3678": {
      "op": "DUP2"
    },
    "3679": {
      "op": "CALLDATALOAD"
    },
    "3680": {
      "op": "DUP2"
    },
    "3681": {
      "op": "DUP2"
    },
    "3682": {
      "op": "GT"
    },
    "3683": {
      "op": "ISZERO"
    },
    "3684": {
      "op": "PUSH2",
      "value": "0xE6F"
    },
    "3687": {
      "op": "JUMPI"
    },
    "3688": {
      "op": "PUSH2",
      "value": "0xE6F"
    },
    "3691": {
      "op": "PUSH2",
      "value": "0x11F6"
    },
    "3694": {
      "jump": "i",
      "op": "JUMP"
    },
    "3695": {
      "op": "JUMPDEST"
    },
    "3696": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "3698": {
      "op": "MLOAD"
    },
    "3699": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "3701": {
      "op": "DUP3"
    },
    "3702": {
      "op": "ADD"
    },
    "3703": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "3705": {
      "op": "NOT"
    },
    "3706": {
      "op": "SWAP1"
    },
    "3707": {
      "op": "DUP2"
    },
    "3708": {
      "op": "AND"
    },
    "3709": {
      "op": "PUSH1",
      "value": "0x3F"
    },
    "3711": {
      "op": "ADD"
    },
    "3712": {
      "op": "AND"
    },
    "3713": {
      "op": "DUP2"
    },
    "3714": {
      "op": "ADD"
    },
    "3715": {
      "op": "SWAP1"
    },
    "3716": {
      "op": "DUP4"
    },
    "3717": {
      "op": "DUP3"
    },
    "3718": {
      "op": "GT"
    },
    "3719": {
      "op": "DUP2"
    },
    "3720": {
      "op": "DUP4"
    },
    "3721": {
      "op": "LT"
    },
    "3722": {
      "op": "OR"
    },
    "3723": {
      "op": "ISZERO"
    },
    "3724": {
      "op": "PUSH2",
      "value": "0xE97"
    },
    "3727": {
      "op": "JUMPI"
    },
    "3728": {
      "op": "PUSH2",
      "value": "0xE97"
    },
    "3731": {
      "op": "PUSH2",
      "value": "0x11F6"
    },
    "3734": {
      "jump": "i",
      "op": "JUMP"
    },
    "3735": {
      "op": "JUMPDEST"
    },
    "3736": {
      "op": "DUP2"
    },
    "3737": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "3739": {
      "op": "MSTORE"
    },
    "3740": {
      "op": "DUP3"
    },
    "3741": {
      "op": "DUP2"
    },
    "3742": {
      "op": "MSTORE"
    },
    "3743": {
      "op": "DUP11"
    },
    "3744": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "3746": {
      "op": "DUP5"
    },
    "3747": {
      "op": "DUP8"
    },
    "3748": {
      "op": "ADD"
    },
    "3749": {
      "op": "ADD"
    },
    "3750": {
      "op": "GT"
    },
    "3751": {
      "op": "ISZERO"
    },
    "3752": {
      "op": "PUSH2",
      "value": "0xEB0"
    },
    "3755": {
      "op": "JUMPI"
    },
    "3756": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3758": {
      "op": "DUP1"
    },
    "3759": {
      "op": "REVERT"
    },
    "3760": {
      "op": "JUMPDEST"
    },
    "3761": {
      "op": "DUP3"
    },
    "3762": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "3764": {
      "op": "DUP7"
    },
    "3765": {
      "op": "ADD"
    },
    "3766": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "3768": {
      "op": "DUP4"
    },
    "3769": {
      "op": "ADD"
    },
    "3770": {
      "op": "CALLDATACOPY"
    },
    "3771": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3773": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "3775": {
      "op": "DUP5"
    },
    "3776": {
      "op": "DUP4"
    },
    "3777": {
      "op": "ADD"
    },
    "3778": {
      "op": "ADD"
    },
    "3779": {
      "op": "MSTORE"
    },
    "3780": {
      "op": "DUP1"
    },
    "3781": {
      "op": "SWAP6"
    },
    "3782": {
      "op": "POP"
    },
    "3783": {
      "op": "POP"
    },
    "3784": {
      "op": "POP"
    },
    "3785": {
      "op": "POP"
    },
    "3786": {
      "op": "POP"
    },
    "3787": {
      "op": "POP"
    },
    "3788": {
      "op": "SWAP3"
    },
    "3789": {
      "op": "SWAP6"
    },
    "3790": {
      "op": "SWAP2"
    },
    "3791": {
      "op": "SWAP5"
    },
    "3792": {
      "op": "POP"
    },
    "3793": {
      "op": "SWAP3"
    },
    "3794": {
      "op": "POP"
    },
    "3795": {
      "jump": "o",
      "op": "JUMP"
    },
    "3796": {
      "op": "JUMPDEST"
    },
    "3797": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3799": {
      "op": "DUP1"
    },
    "3800": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "3802": {
      "op": "DUP4"
    },
    "3803": {
      "op": "DUP6"
    },
    "3804": {
      "op": "SUB"
    },
    "3805": {
      "op": "SLT"
    },
    "3806": {
      "op": "ISZERO"
    },
    "3807": {
      "op": "PUSH2",
      "value": "0xEE7"
    },
    "3810": {
      "op": "JUMPI"
    },
    "3811": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3813": {
      "op": "DUP1"
    },
    "3814": {
      "op": "REVERT"
    },
    "3815": {
      "op": "JUMPDEST"
    },
    "3816": {
      "op": "PUSH2",
      "value": "0xEF0"
    },
    "3819": {
      "op": "DUP4"
    },
    "3820": {
      "op": "PUSH2",
      "value": "0xD52"
    },
    "3823": {
      "jump": "i",
      "op": "JUMP"
    },
    "3824": {
      "op": "JUMPDEST"
    },
    "3825": {
      "op": "SWAP2"
    },
    "3826": {
      "op": "POP"
    },
    "3827": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "3829": {
      "op": "DUP4"
    },
    "3830": {
      "op": "ADD"
    },
    "3831": {
      "op": "CALLDATALOAD"
    },
    "3832": {
      "op": "DUP1"
    },
    "3833": {
      "op": "ISZERO"
    },
    "3834": {
      "op": "ISZERO"
    },
    "3835": {
      "op": "DUP2"
    },
    "3836": {
      "op": "EQ"
    },
    "3837": {
      "op": "PUSH2",
      "value": "0xF05"
    },
    "3840": {
      "op": "JUMPI"
    },
    "3841": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3843": {
      "op": "DUP1"
    },
    "3844": {
      "op": "REVERT"
    },
    "3845": {
      "op": "JUMPDEST"
    },
    "3846": {
      "op": "DUP1"
    },
    "3847": {
      "op": "SWAP2"
    },
    "3848": {
      "op": "POP"
    },
    "3849": {
      "op": "POP"
    },
    "3850": {
      "op": "SWAP3"
    },
    "3851": {
      "op": "POP"
    },
    "3852": {
      "op": "SWAP3"
    },
    "3853": {
      "op": "SWAP1"
    },
    "3854": {
      "op": "POP"
    },
    "3855": {
      "jump": "o",
      "op": "JUMP"
    },
    "3856": {
      "op": "JUMPDEST"
    },
    "3857": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3859": {
      "op": "DUP1"
    },
    "3860": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "3862": {
      "op": "DUP4"
    },
    "3863": {
      "op": "DUP6"
    },
    "3864": {
      "op": "SUB"
    },
    "3865": {
      "op": "SLT"
    },
    "3866": {
      "op": "ISZERO"
    },
    "3867": {
      "op": "PUSH2",
      "value": "0xF23"
    },
    "3870": {
      "op": "JUMPI"
    },
    "3871": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3873": {
      "op": "DUP1"
    },
    "3874": {
      "op": "REVERT"
    },
    "3875": {
      "op": "JUMPDEST"
    },
    "3876": {
      "op": "PUSH2",
      "value": "0xF2C"
    },
    "3879": {
      "op": "DUP4"
    },
    "3880": {
      "op": "PUSH2",
      "value": "0xD52"
    },
    "3883": {
      "jump": "i",
      "op": "JUMP"
    },
    "3884": {
      "op": "JUMPDEST"
    },
    "3885": {
      "op": "SWAP5"
    },
    "3886": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "3888": {
      "op": "SWAP4"
    },
    "3889": {
      "op": "SWAP1"
    },
    "3890": {
      "op": "SWAP4"
    },
    "3891": {
      "op": "ADD"
    },
    "3892": {
      "op": "CALLDATALOAD"
    },
    "3893": {
      "op": "SWAP4"
    },
    "3894": {
      "op": "POP"
    },
    "3895": {
      "op": "POP"
    },
    "3896": {
      "op": "POP"
    },
    "3897": {
      "jump": "o",
      "op": "JUMP"
    },
    "3898": {
      "op": "JUMPDEST"
    },
    "3899": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3901": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "3903": {
      "op": "DUP3"
    },
    "3904": {
      "op": "DUP5"
    },
    "3905": {
      "op": "SUB"
    },
    "3906": {
      "op": "SLT"
    },
    "3907": {
      "op": "ISZERO"
    },
    "3908": {
      "op": "PUSH2",
      "value": "0xF4C"
    },
    "3911": {
      "op": "JUMPI"
    },
    "3912": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3914": {
      "op": "DUP1"
    },
    "3915": {
      "op": "REVERT"
    },
    "3916": {
      "op": "JUMPDEST"
    },
    "3917": {
      "op": "DUP2"
    },
    "3918": {
      "op": "CALLDATALOAD"
    },
    "3919": {
      "op": "PUSH2",
      "value": "0x73D"
    },
    "3922": {
      "op": "DUP2"
    },
    "3923": {
      "op": "PUSH2",
      "value": "0x120C"
    },
    "3926": {
      "jump": "i",
      "op": "JUMP"
    },
    "3927": {
      "op": "JUMPDEST"
    },
    "3928": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3930": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "3932": {
      "op": "DUP3"
    },
    "3933": {
      "op": "DUP5"
    },
    "3934": {
      "op": "SUB"
    },
    "3935": {
      "op": "SLT"
    },
    "3936": {
      "op": "ISZERO"
    },
    "3937": {
      "op": "PUSH2",
      "value": "0xF69"
    },
    "3940": {
      "op": "JUMPI"
    },
    "3941": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3943": {
      "op": "DUP1"
    },
    "3944": {
      "op": "REVERT"
    },
    "3945": {
      "op": "JUMPDEST"
    },
    "3946": {
      "op": "DUP2"
    },
    "3947": {
      "op": "MLOAD"
    },
    "3948": {
      "op": "PUSH2",
      "value": "0x73D"
    },
    "3951": {
      "op": "DUP2"
    },
    "3952": {
      "op": "PUSH2",
      "value": "0x120C"
    },
    "3955": {
      "jump": "i",
      "op": "JUMP"
    },
    "3956": {
      "op": "JUMPDEST"
    },
    "3957": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3959": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "3961": {
      "op": "DUP3"
    },
    "3962": {
      "op": "DUP5"
    },
    "3963": {
      "op": "SUB"
    },
    "3964": {
      "op": "SLT"
    },
    "3965": {
      "op": "ISZERO"
    },
    "3966": {
      "op": "PUSH2",
      "value": "0xF86"
    },
    "3969": {
      "op": "JUMPI"
    },
    "3970": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3972": {
      "op": "DUP1"
    },
    "3973": {
      "op": "REVERT"
    },
    "3974": {
      "op": "JUMPDEST"
    },
    "3975": {
      "op": "POP"
    },
    "3976": {
      "op": "CALLDATALOAD"
    },
    "3977": {
      "op": "SWAP2"
    },
    "3978": {
      "op": "SWAP1"
    },
    "3979": {
      "op": "POP"
    },
    "3980": {
      "jump": "o",
      "op": "JUMP"
    },
    "3981": {
      "op": "JUMPDEST"
    },
    "3982": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3984": {
      "op": "DUP2"
    },
    "3985": {
      "op": "MLOAD"
    },
    "3986": {
      "op": "DUP1"
    },
    "3987": {
      "op": "DUP5"
    },
    "3988": {
      "op": "MSTORE"
    },
    "3989": {
      "op": "PUSH2",
      "value": "0xFA5"
    },
    "3992": {
      "op": "DUP2"
    },
    "3993": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "3995": {
      "op": "DUP7"
    },
    "3996": {
      "op": "ADD"
    },
    "3997": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "3999": {
      "op": "DUP7"
    },
    "4000": {
      "op": "ADD"
    },
    "4001": {
      "op": "PUSH2",
      "value": "0x111E"
    },
    "4004": {
      "jump": "i",
      "op": "JUMP"
    },
    "4005": {
      "op": "JUMPDEST"
    },
    "4006": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "4008": {
      "op": "ADD"
    },
    "4009": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "4011": {
      "op": "NOT"
    },
    "4012": {
      "op": "AND"
    },
    "4013": {
      "op": "SWAP3"
    },
    "4014": {
      "op": "SWAP1"
    },
    "4015": {
      "op": "SWAP3"
    },
    "4016": {
      "op": "ADD"
    },
    "4017": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "4019": {
      "op": "ADD"
    },
    "4020": {
      "op": "SWAP3"
    },
    "4021": {
      "op": "SWAP2"
    },
    "4022": {
      "op": "POP"
    },
    "4023": {
      "op": "POP"
    },
    "4024": {
      "jump": "o",
      "op": "JUMP"
    },
    "4025": {
      "op": "JUMPDEST"
    },
    "4026": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4028": {
      "op": "DUP4"
    },
    "4029": {
      "op": "MLOAD"
    },
    "4030": {
      "op": "PUSH2",
      "value": "0xFCB"
    },
    "4033": {
      "op": "DUP2"
    },
    "4034": {
      "op": "DUP5"
    },
    "4035": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "4037": {
      "op": "DUP9"
    },
    "4038": {
      "op": "ADD"
    },
    "4039": {
      "op": "PUSH2",
      "value": "0x111E"
    },
    "4042": {
      "jump": "i",
      "op": "JUMP"
    },
    "4043": {
      "op": "JUMPDEST"
    },
    "4044": {
      "op": "DUP4"
    },
    "4045": {
      "op": "MLOAD"
    },
    "4046": {
      "op": "SWAP1"
    },
    "4047": {
      "op": "DUP4"
    },
    "4048": {
      "op": "ADD"
    },
    "4049": {
      "op": "SWAP1"
    },
    "4050": {
      "op": "PUSH2",
      "value": "0xFDF"
    },
    "4053": {
      "op": "DUP2"
    },
    "4054": {
      "op": "DUP4"
    },
    "4055": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "4057": {
      "op": "DUP9"
    },
    "4058": {
      "op": "ADD"
    },
    "4059": {
      "op": "PUSH2",
      "value": "0x111E"
    },
    "4062": {
      "jump": "i",
      "op": "JUMP"
    },
    "4063": {
      "op": "JUMPDEST"
    },
    "4064": {
      "op": "ADD"
    },
    "4065": {
      "op": "SWAP5"
    },
    "4066": {
      "op": "SWAP4"
    },
    "4067": {
      "op": "POP"
    },
    "4068": {
      "op": "POP"
    },
    "4069": {
      "op": "POP"
    },
    "4070": {
      "op": "POP"
    },
    "4071": {
      "jump": "o",
      "op": "JUMP"
    },
    "4072": {
      "op": "JUMPDEST"
    },
    "4073": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "4075": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "4077": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "4079": {
      "op": "SHL"
    },
    "4080": {
      "op": "SUB"
    },
    "4081": {
      "op": "DUP6"
    },
    "4082": {
      "op": "DUP2"
    },
    "4083": {
      "op": "AND"
    },
    "4084": {
      "op": "DUP3"
    },
    "4085": {
      "op": "MSTORE"
    },
    "4086": {
      "op": "DUP5"
    },
    "4087": {
      "op": "AND"
    },
    "4088": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "4090": {
      "op": "DUP3"
    },
    "4091": {
      "op": "ADD"
    },
    "4092": {
      "op": "MSTORE"
    },
    "4093": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "4095": {
      "op": "DUP2"
    },
    "4096": {
      "op": "ADD"
    },
    "4097": {
      "op": "DUP4"
    },
    "4098": {
      "op": "SWAP1"
    },
    "4099": {
      "op": "MSTORE"
    },
    "4100": {
      "op": "PUSH1",
      "value": "0x80"
    },
    "4102": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "4104": {
      "op": "DUP3"
    },
    "4105": {
      "op": "ADD"
    },
    "4106": {
      "op": "DUP2"
    },
    "4107": {
      "op": "SWAP1"
    },
    "4108": {
      "op": "MSTORE"
    },
    "4109": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4111": {
      "op": "SWAP1"
    },
    "4112": {
      "op": "PUSH2",
      "value": "0x101B"
    },
    "4115": {
      "op": "SWAP1"
    },
    "4116": {
      "op": "DUP4"
    },
    "4117": {
      "op": "ADD"
    },
    "4118": {
      "op": "DUP5"
    },
    "4119": {
      "op": "PUSH2",
      "value": "0xF8D"
    },
    "4122": {
      "jump": "i",
      "op": "JUMP"
    },
    "4123": {
      "op": "JUMPDEST"
    },
    "4124": {
      "op": "SWAP7"
    },
    "4125": {
      "op": "SWAP6"
    },
    "4126": {
      "op": "POP"
    },
    "4127": {
      "op": "POP"
    },
    "4128": {
      "op": "POP"
    },
    "4129": {
      "op": "POP"
    },
    "4130": {
      "op": "POP"
    },
    "4131": {
      "op": "POP"
    },
    "4132": {
      "jump": "o",
      "op": "JUMP"
    },
    "4133": {
      "op": "JUMPDEST"
    },
    "4134": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "4136": {
      "op": "DUP2"
    },
    "4137": {
      "op": "MSTORE"
    },
    "4138": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4140": {
      "op": "PUSH2",
      "value": "0x73D"
    },
    "4143": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "4145": {
      "op": "DUP4"
    },
    "4146": {
      "op": "ADD"
    },
    "4147": {
      "op": "DUP5"
    },
    "4148": {
      "op": "PUSH2",
      "value": "0xF8D"
    },
    "4151": {
      "jump": "i",
      "op": "JUMP"
    },
    "4152": {
      "op": "JUMPDEST"
    },
    "4153": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "4155": {
      "op": "DUP1"
    },
    "4156": {
      "op": "DUP3"
    },
    "4157": {
      "op": "MSTORE"
    },
    "4158": {
      "op": "PUSH1",
      "value": "0x32"
    },
    "4160": {
      "op": "SWAP1"
    },
    "4161": {
      "op": "DUP3"
    },
    "4162": {
      "op": "ADD"
    },
    "4163": {
      "op": "MSTORE"
    },
    "4164": {
      "op": "PUSH32",
      "value": "0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265"
    },
    "4197": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "4199": {
      "op": "DUP3"
    },
    "4200": {
      "op": "ADD"
    },
    "4201": {
      "op": "MSTORE"
    },
    "4202": {
      "op": "PUSH18",
      "value": "0x31B2B4BB32B91034B6B83632B6B2B73A32B9"
    },
    "4221": {
      "op": "PUSH1",
      "value": "0x71"
    },
    "4223": {
      "op": "SHL"
    },
    "4224": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "4226": {
      "op": "DUP3"
    },
    "4227": {
      "op": "ADD"
    },
    "4228": {
      "op": "MSTORE"
    },
    "4229": {
      "op": "PUSH1",
      "value": "0x80"
    },
    "4231": {
      "op": "ADD"
    },
    "4232": {
      "op": "SWAP1"
    },
    "4233": {
      "jump": "o",
      "op": "JUMP"
    },
    "4234": {
      "op": "JUMPDEST"
    },
    "4235": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "4237": {
      "op": "DUP1"
    },
    "4238": {
      "op": "DUP3"
    },
    "4239": {
      "op": "MSTORE"
    },
    "4240": {
      "op": "PUSH1",
      "value": "0x31"
    },
    "4242": {
      "op": "SWAP1"
    },
    "4243": {
      "op": "DUP3"
    },
    "4244": {
      "op": "ADD"
    },
    "4245": {
      "op": "MSTORE"
    },
    "4246": {
      "op": "PUSH32",
      "value": "0x4552433732313A207472616E736665722063616C6C6572206973206E6F74206F"
    },
    "4279": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "4281": {
      "op": "DUP3"
    },
    "4282": {
      "op": "ADD"
    },
    "4283": {
      "op": "MSTORE"
    },
    "4284": {
      "op": "PUSH17",
      "value": "0x1DDB995C881B9BDC88185C1C1C9BDD9959"
    },
    "4302": {
      "op": "PUSH1",
      "value": "0x7A"
    },
    "4304": {
      "op": "SHL"
    },
    "4305": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "4307": {
      "op": "DUP3"
    },
    "4308": {
      "op": "ADD"
    },
    "4309": {
      "op": "MSTORE"
    },
    "4310": {
      "op": "PUSH1",
      "value": "0x80"
    },
    "4312": {
      "op": "ADD"
    },
    "4313": {
      "op": "SWAP1"
    },
    "4314": {
      "jump": "o",
      "op": "JUMP"
    },
    "4315": {
      "op": "JUMPDEST"
    },
    "4316": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4318": {
      "op": "DUP3"
    },
    "4319": {
      "op": "NOT"
    },
    "4320": {
      "op": "DUP3"
    },
    "4321": {
      "op": "GT"
    },
    "4322": {
      "op": "ISZERO"
    },
    "4323": {
      "op": "PUSH2",
      "value": "0x10EE"
    },
    "4326": {
      "op": "JUMPI"
    },
    "4327": {
      "op": "PUSH2",
      "value": "0x10EE"
    },
    "4330": {
      "op": "PUSH2",
      "value": "0x11B4"
    },
    "4333": {
      "jump": "i",
      "op": "JUMP"
    },
    "4334": {
      "op": "JUMPDEST"
    },
    "4335": {
      "op": "POP"
    },
    "4336": {
      "op": "ADD"
    },
    "4337": {
      "op": "SWAP1"
    },
    "4338": {
      "jump": "o",
      "op": "JUMP"
    },
    "4339": {
      "op": "JUMPDEST"
    },
    "4340": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4342": {
      "op": "DUP3"
    },
    "4343": {
      "op": "PUSH2",
      "value": "0x1102"
    },
    "4346": {
      "op": "JUMPI"
    },
    "4347": {
      "op": "PUSH2",
      "value": "0x1102"
    },
    "4350": {
      "op": "PUSH2",
      "value": "0x11CA"
    },
    "4353": {
      "jump": "i",
      "op": "JUMP"
    },
    "4354": {
      "op": "JUMPDEST"
    },
    "4355": {
      "op": "POP"
    },
    "4356": {
      "op": "DIV"
    },
    "4357": {
      "op": "SWAP1"
    },
    "4358": {
      "jump": "o",
      "op": "JUMP"
    },
    "4359": {
      "op": "JUMPDEST"
    },
    "4360": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4362": {
      "op": "DUP3"
    },
    "4363": {
      "op": "DUP3"
    },
    "4364": {
      "op": "LT"
    },
    "4365": {
      "op": "ISZERO"
    },
    "4366": {
      "op": "PUSH2",
      "value": "0x1119"
    },
    "4369": {
      "op": "JUMPI"
    },
    "4370": {
      "op": "PUSH2",
      "value": "0x1119"
    },
    "4373": {
      "op": "PUSH2",
      "value": "0x11B4"
    },
    "4376": {
      "jump": "i",
      "op": "JUMP"
    },
    "4377": {
      "op": "JUMPDEST"
    },
    "4378": {
      "op": "POP"
    },
    "4379": {
      "op": "SUB"
    },
    "4380": {
      "op": "SWAP1"
    },
    "4381": {
      "jump": "o",
      "op": "JUMP"
    },
    "4382": {
      "op": "JUMPDEST"
    },
    "4383": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4385": {
      "op": "JUMPDEST"
    },
    "4386": {
      "op": "DUP4"
    },
    "4387": {
      "op": "DUP2"
    },
    "4388": {
      "op": "LT"
    },
    "4389": {
      "op": "ISZERO"
    },
    "4390": {
      "op": "PUSH2",
      "value": "0x1139"
    },
    "4393": {
      "op": "JUMPI"
    },
    "4394": {
      "op": "DUP2"
    },
    "4395": {
      "op": "DUP2"
    },
    "4396": {
      "op": "ADD"
    },
    "4397": {
      "op": "MLOAD"
    },
    "4398": {
      "op": "DUP4"
    },
    "4399": {
      "op": "DUP3"
    },
    "4400": {
      "op": "ADD"
    },
    "4401": {
      "op": "MSTORE"
    },
    "4402": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "4404": {
      "op": "ADD"
    },
    "4405": {
      "op": "PUSH2",
      "value": "0x1121"
    },
    "4408": {
      "op": "JUMP"
    },
    "4409": {
      "op": "JUMPDEST"
    },
    "4410": {
      "op": "DUP4"
    },
    "4411": {
      "op": "DUP2"
    },
    "4412": {
      "op": "GT"
    },
    "4413": {
      "op": "ISZERO"
    },
    "4414": {
      "op": "PUSH2",
      "value": "0x656"
    },
    "4417": {
      "op": "JUMPI"
    },
    "4418": {
      "op": "POP"
    },
    "4419": {
      "op": "POP"
    },
    "4420": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4422": {
      "op": "SWAP2"
    },
    "4423": {
      "op": "ADD"
    },
    "4424": {
      "op": "MSTORE"
    },
    "4425": {
      "jump": "o",
      "op": "JUMP"
    },
    "4426": {
      "op": "JUMPDEST"
    },
    "4427": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "4429": {
      "op": "DUP2"
    },
    "4430": {
      "op": "DUP2"
    },
    "4431": {
      "op": "SHR"
    },
    "4432": {
      "op": "SWAP1"
    },
    "4433": {
      "op": "DUP3"
    },
    "4434": {
      "op": "AND"
    },
    "4435": {
      "op": "DUP1"
    },
    "4436": {
      "op": "PUSH2",
      "value": "0x115E"
    },
    "4439": {
      "op": "JUMPI"
    },
    "4440": {
      "op": "PUSH1",
      "value": "0x7F"
    },
    "4442": {
      "op": "DUP3"
    },
    "4443": {
      "op": "AND"
    },
    "4444": {
      "op": "SWAP2"
    },
    "4445": {
      "op": "POP"
    },
    "4446": {
      "op": "JUMPDEST"
    },
    "4447": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "4449": {
      "op": "DUP3"
    },
    "4450": {
      "op": "LT"
    },
    "4451": {
      "op": "DUP2"
    },
    "4452": {
      "op": "EQ"
    },
    "4453": {
      "op": "ISZERO"
    },
    "4454": {
      "op": "PUSH2",
      "value": "0x117F"
    },
    "4457": {
      "op": "JUMPI"
    },
    "4458": {
      "op": "PUSH4",
      "value": "0x4E487B71"
    },
    "4463": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "4465": {
      "op": "SHL"
    },
    "4466": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4468": {
      "op": "MSTORE"
    },
    "4469": {
      "op": "PUSH1",
      "value": "0x22"
    },
    "4471": {
      "op": "PUSH1",
      "value": "0x4"
    },
    "4473": {
      "op": "MSTORE"
    },
    "4474": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "4476": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4478": {
      "op": "REVERT"
    },
    "4479": {
      "op": "JUMPDEST"
    },
    "4480": {
      "op": "POP"
    },
    "4481": {
      "op": "SWAP2"
    },
    "4482": {
      "op": "SWAP1"
    },
    "4483": {
      "op": "POP"
    },
    "4484": {
      "jump": "o",
      "op": "JUMP"
    },
    "4485": {
      "op": "JUMPDEST"
    },
    "4486": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4488": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4490": {
      "op": "NOT"
    },
    "4491": {
      "op": "DUP3"
    },
    "4492": {
      "op": "EQ"
    },
    "4493": {
      "op": "ISZERO"
    },
    "4494": {
      "op": "PUSH2",
      "value": "0x1199"
    },
    "4497": {
      "op": "JUMPI"
    },
    "4498": {
      "op": "PUSH2",
      "value": "0x1199"
    },
    "4501": {
      "op": "PUSH2",
      "value": "0x11B4"
    },
    "4504": {
      "jump": "i",
      "op": "JUMP"
    },
    "4505": {
      "op": "JUMPDEST"
    },
    "4506": {
      "op": "POP"
    },
    "4507": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "4509": {
      "op": "ADD"
    },
    "4510": {
      "op": "SWAP1"
    },
    "4511": {
      "jump": "o",
      "op": "JUMP"
    },
    "4512": {
      "op": "JUMPDEST"
    },
    "4513": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4515": {
      "op": "DUP3"
    },
    "4516": {
      "op": "PUSH2",
      "value": "0x11AF"
    },
    "4519": {
      "op": "JUMPI"
    },
    "4520": {
      "op": "PUSH2",
      "value": "0x11AF"
    },
    "4523": {
      "op": "PUSH2",
      "value": "0x11CA"
    },
    "4526": {
      "jump": "i",
      "op": "JUMP"
    },
    "4527": {
      "op": "JUMPDEST"
    },
    "4528": {
      "op": "POP"
    },
    "4529": {
      "op": "MOD"
    },
    "4530": {
      "op": "SWAP1"
    },
    "4531": {
      "jump": "o",
      "op": "JUMP"
    },
    "4532": {
      "op": "JUMPDEST"
    },
    "4533": {
      "op": "PUSH4",
      "value": "0x4E487B71"
    },
    "4538": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "4540": {
      "op": "SHL"
    },
    "4541": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4543": {
      "op": "MSTORE"
    },
    "4544": {
      "op": "PUSH1",
      "value": "0x11"
    },
    "4546": {
      "op": "PUSH1",
      "value": "0x4"
    },
    "4548": {
      "op": "MSTORE"
    },
    "4549": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "4551": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4553": {
      "op": "REVERT"
    },
    "4554": {
      "op": "JUMPDEST"
    },
    "4555": {
      "op": "PUSH4",
      "value": "0x4E487B71"
    },
    "4560": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "4562": {
      "op": "SHL"
    },
    "4563": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4565": {
      "op": "MSTORE"
    },
    "4566": {
      "op": "PUSH1",
      "value": "0x12"
    },
    "4568": {
      "op": "PUSH1",
      "value": "0x4"
    },
    "4570": {
      "op": "MSTORE"
    },
    "4571": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "4573": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4575": {
      "op": "REVERT"
    },
    "4576": {
      "op": "JUMPDEST"
    },
    "4577": {
      "op": "PUSH4",
      "value": "0x4E487B71"
    },
    "4582": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "4584": {
      "op": "SHL"
    },
    "4585": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4587": {
      "op": "MSTORE"
    },
    "4588": {
      "op": "PUSH1",
      "value": "0x32"
    },
    "4590": {
      "op": "PUSH1",
      "value": "0x4"
    },
    "4592": {
      "op": "MSTORE"
    },
    "4593": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "4595": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4597": {
      "op": "REVERT"
    },
    "4598": {
      "op": "JUMPDEST"
    },
    "4599": {
      "op": "PUSH4",
      "value": "0x4E487B71"
    },
    "4604": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "4606": {
      "op": "SHL"
    },
    "4607": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4609": {
      "op": "MSTORE"
    },
    "4610": {
      "op": "PUSH1",
      "value": "0x41"
    },
    "4612": {
      "op": "PUSH1",
      "value": "0x4"
    },
    "4614": {
      "op": "MSTORE"
    },
    "4615": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "4617": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4619": {
      "op": "REVERT"
    },
    "4620": {
      "op": "JUMPDEST"
    },
    "4621": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "4623": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "4625": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "4627": {
      "op": "SHL"
    },
    "4628": {
      "op": "SUB"
    },
    "4629": {
      "op": "NOT"
    },
    "4630": {
      "op": "DUP2"
    },
    "4631": {
      "op": "AND"
    },
    "4632": {
      "op": "DUP2"
    },
    "4633": {
      "op": "EQ"
    },
    "4634": {
      "op": "PUSH2",
      "value": "0x1222"
    },
    "4637": {
      "op": "JUMPI"
    },
    "4638": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "4640": {
      "op": "DUP1"
    },
    "4641": {
      "op": "REVERT"
    },
    "4642": {
      "op": "JUMPDEST"
    },
    "4643": {
      "op": "POP"
    },
    "4644": {
      "jump": "o",
      "op": "JUMP"
    }
  },
  "sha1": "e4f5ef1568017856f4a9bdec73b26d99f8bfa9a6",
  "source": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC721Upgradeable.sol\";\nimport \"./IERC721ReceiverUpgradeable.sol\";\nimport \"./extensions/IERC721MetadataUpgradeable.sol\";\nimport \"../../utils/AddressUpgradeable.sol\";\nimport \"../../utils/ContextUpgradeable.sol\";\nimport \"../../utils/StringsUpgradeable.sol\";\nimport \"../../utils/introspection/ERC165Upgradeable.sol\";\nimport \"../../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\ncontract ERC721Upgradeable is Initializable, ContextUpgradeable, ERC165Upgradeable, IERC721Upgradeable, IERC721MetadataUpgradeable {\n    using AddressUpgradeable for address;\n    using StringsUpgradeable for uint256;\n\n    // Token name\n    string private _name;\n\n    // Token symbol\n    string private _symbol;\n\n    // Mapping from token ID to owner address\n    mapping(uint256 => address) private _owners;\n\n    // Mapping owner address to token count\n    mapping(address => uint256) private _balances;\n\n    // Mapping from token ID to approved address\n    mapping(uint256 => address) private _tokenApprovals;\n\n    // Mapping from owner to operator approvals\n    mapping(address => mapping(address => bool)) private _operatorApprovals;\n\n    /**\n     * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n     */\n    function __ERC721_init(string memory name_, string memory symbol_) internal onlyInitializing {\n        __ERC721_init_unchained(name_, symbol_);\n    }\n\n    function __ERC721_init_unchained(string memory name_, string memory symbol_) internal onlyInitializing {\n        _name = name_;\n        _symbol = symbol_;\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165Upgradeable, IERC165Upgradeable) returns (bool) {\n        return\n            interfaceId == type(IERC721Upgradeable).interfaceId ||\n            interfaceId == type(IERC721MetadataUpgradeable).interfaceId ||\n            super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev See {IERC721-balanceOf}.\n     */\n    function balanceOf(address owner) public view virtual override returns (uint256) {\n        require(owner != address(0), \"ERC721: balance query for the zero address\");\n        return _balances[owner];\n    }\n\n    /**\n     * @dev See {IERC721-ownerOf}.\n     */\n    function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n        address owner = _owners[tokenId];\n        require(owner != address(0), \"ERC721: owner query for nonexistent token\");\n        return owner;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-name}.\n     */\n    function name() public view virtual override returns (string memory) {\n        return _name;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-symbol}.\n     */\n    function symbol() public view virtual override returns (string memory) {\n        return _symbol;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-tokenURI}.\n     */\n    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n        require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n\n        string memory baseURI = _baseURI();\n        return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \"\";\n    }\n\n    /**\n     * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n     * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n     * by default, can be overriden in child contracts.\n     */\n    function _baseURI() internal view virtual returns (string memory) {\n        return \"\";\n    }\n\n    /**\n     * @dev See {IERC721-approve}.\n     */\n    function approve(address to, uint256 tokenId) public virtual override {\n        address owner = ERC721Upgradeable.ownerOf(tokenId);\n        require(to != owner, \"ERC721: approval to current owner\");\n\n        require(\n            _msgSender() == owner || isApprovedForAll(owner, _msgSender()),\n            \"ERC721: approve caller is not owner nor approved for all\"\n        );\n\n        _approve(to, tokenId);\n    }\n\n    /**\n     * @dev See {IERC721-getApproved}.\n     */\n    function getApproved(uint256 tokenId) public view virtual override returns (address) {\n        require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n        return _tokenApprovals[tokenId];\n    }\n\n    /**\n     * @dev See {IERC721-setApprovalForAll}.\n     */\n    function setApprovalForAll(address operator, bool approved) public virtual override {\n        _setApprovalForAll(_msgSender(), operator, approved);\n    }\n\n    /**\n     * @dev See {IERC721-isApprovedForAll}.\n     */\n    function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n        return _operatorApprovals[owner][operator];\n    }\n\n    /**\n     * @dev See {IERC721-transferFrom}.\n     */\n    function transferFrom(\n        address from,\n        address to,\n        uint256 tokenId\n    ) public virtual override {\n        //solhint-disable-next-line max-line-length\n        require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n        _transfer(from, to, tokenId);\n    }\n\n    /**\n     * @dev See {IERC721-safeTransferFrom}.\n     */\n    function safeTransferFrom(\n        address from,\n        address to,\n        uint256 tokenId\n    ) public virtual override {\n        safeTransferFrom(from, to, tokenId, \"\");\n    }\n\n    /**\n     * @dev See {IERC721-safeTransferFrom}.\n     */\n    function safeTransferFrom(\n        address from,\n        address to,\n        uint256 tokenId,\n        bytes memory _data\n    ) public virtual override {\n        require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n        _safeTransfer(from, to, tokenId, _data);\n    }\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n     * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n     *\n     * `_data` is additional data, it has no specified format and it is sent in call to `to`.\n     *\n     * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n     * implement alternative mechanisms to perform token transfer, such as signature-based.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must exist and be owned by `from`.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _safeTransfer(\n        address from,\n        address to,\n        uint256 tokenId,\n        bytes memory _data\n    ) internal virtual {\n        _transfer(from, to, tokenId);\n        require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n    }\n\n    /**\n     * @dev Returns whether `tokenId` exists.\n     *\n     * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n     *\n     * Tokens start existing when they are minted (`_mint`),\n     * and stop existing when they are burned (`_burn`).\n     */\n    function _exists(uint256 tokenId) internal view virtual returns (bool) {\n        return _owners[tokenId] != address(0);\n    }\n\n    /**\n     * @dev Returns whether `spender` is allowed to manage `tokenId`.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n        require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n        address owner = ERC721Upgradeable.ownerOf(tokenId);\n        return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));\n    }\n\n    /**\n     * @dev Safely mints `tokenId` and transfers it to `to`.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must not exist.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _safeMint(address to, uint256 tokenId) internal virtual {\n        _safeMint(to, tokenId, \"\");\n    }\n\n    /**\n     * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n     * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n     */\n    function _safeMint(\n        address to,\n        uint256 tokenId,\n        bytes memory _data\n    ) internal virtual {\n        _mint(to, tokenId);\n        require(\n            _checkOnERC721Received(address(0), to, tokenId, _data),\n            \"ERC721: transfer to non ERC721Receiver implementer\"\n        );\n    }\n\n    /**\n     * @dev Mints `tokenId` and transfers it to `to`.\n     *\n     * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n     *\n     * Requirements:\n     *\n     * - `tokenId` must not exist.\n     * - `to` cannot be the zero address.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _mint(address to, uint256 tokenId) internal virtual {\n        require(to != address(0), \"ERC721: mint to the zero address\");\n        require(!_exists(tokenId), \"ERC721: token already minted\");\n\n        _beforeTokenTransfer(address(0), to, tokenId);\n\n        _balances[to] += 1;\n        _owners[tokenId] = to;\n\n        emit Transfer(address(0), to, tokenId);\n\n        _afterTokenTransfer(address(0), to, tokenId);\n    }\n\n    /**\n     * @dev Destroys `tokenId`.\n     * The approval is cleared when the token is burned.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _burn(uint256 tokenId) internal virtual {\n        address owner = ERC721Upgradeable.ownerOf(tokenId);\n\n        _beforeTokenTransfer(owner, address(0), tokenId);\n\n        // Clear approvals\n        _approve(address(0), tokenId);\n\n        _balances[owner] -= 1;\n        delete _owners[tokenId];\n\n        emit Transfer(owner, address(0), tokenId);\n\n        _afterTokenTransfer(owner, address(0), tokenId);\n    }\n\n    /**\n     * @dev Transfers `tokenId` from `from` to `to`.\n     *  As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n     *\n     * Requirements:\n     *\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must be owned by `from`.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _transfer(\n        address from,\n        address to,\n        uint256 tokenId\n    ) internal virtual {\n        require(ERC721Upgradeable.ownerOf(tokenId) == from, \"ERC721: transfer from incorrect owner\");\n        require(to != address(0), \"ERC721: transfer to the zero address\");\n\n        _beforeTokenTransfer(from, to, tokenId);\n\n        // Clear approvals from the previous owner\n        _approve(address(0), tokenId);\n\n        _balances[from] -= 1;\n        _balances[to] += 1;\n        _owners[tokenId] = to;\n\n        emit Transfer(from, to, tokenId);\n\n        _afterTokenTransfer(from, to, tokenId);\n    }\n\n    /**\n     * @dev Approve `to` to operate on `tokenId`\n     *\n     * Emits a {Approval} event.\n     */\n    function _approve(address to, uint256 tokenId) internal virtual {\n        _tokenApprovals[tokenId] = to;\n        emit Approval(ERC721Upgradeable.ownerOf(tokenId), to, tokenId);\n    }\n\n    /**\n     * @dev Approve `operator` to operate on all of `owner` tokens\n     *\n     * Emits a {ApprovalForAll} event.\n     */\n    function _setApprovalForAll(\n        address owner,\n        address operator,\n        bool approved\n    ) internal virtual {\n        require(owner != operator, \"ERC721: approve to caller\");\n        _operatorApprovals[owner][operator] = approved;\n        emit ApprovalForAll(owner, operator, approved);\n    }\n\n    /**\n     * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n     * The call is not executed if the target address is not a contract.\n     *\n     * @param from address representing the previous owner of the given token ID\n     * @param to target address that will receive the tokens\n     * @param tokenId uint256 ID of the token to be transferred\n     * @param _data bytes optional data to send along with the call\n     * @return bool whether the call correctly returned the expected magic value\n     */\n    function _checkOnERC721Received(\n        address from,\n        address to,\n        uint256 tokenId,\n        bytes memory _data\n    ) private returns (bool) {\n        if (to.isContract()) {\n            try IERC721ReceiverUpgradeable(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) {\n                return retval == IERC721ReceiverUpgradeable.onERC721Received.selector;\n            } catch (bytes memory reason) {\n                if (reason.length == 0) {\n                    revert(\"ERC721: transfer to non ERC721Receiver implementer\");\n                } else {\n                    assembly {\n                        revert(add(32, reason), mload(reason))\n                    }\n                }\n            }\n        } else {\n            return true;\n        }\n    }\n\n    /**\n     * @dev Hook that is called before any token transfer. This includes minting\n     * and burning.\n     *\n     * Calling conditions:\n     *\n     * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n     * transferred to `to`.\n     * - When `from` is zero, `tokenId` will be minted for `to`.\n     * - When `to` is zero, ``from``'s `tokenId` will be burned.\n     * - `from` and `to` are never both zero.\n     *\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n     */\n    function _beforeTokenTransfer(\n        address from,\n        address to,\n        uint256 tokenId\n    ) internal virtual {}\n\n    /**\n     * @dev Hook that is called after any transfer of tokens. This includes\n     * minting and burning.\n     *\n     * Calling conditions:\n     *\n     * - when `from` and `to` are both non-zero.\n     * - `from` and `to` are never both zero.\n     *\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n     */\n    function _afterTokenTransfer(\n        address from,\n        address to,\n        uint256 tokenId\n    ) internal virtual {}\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[44] private __gap;\n}\n",
  "sourceMap": "751:14363:78:-:0;;;;;;;;;;;;;;;;;;;",
  "sourcePath": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol",
  "type": "contract"
}