{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_controller",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "encoded_initializer",
          "type": "bytes"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "previousAdmin",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "newAdmin",
          "type": "address"
        }
      ],
      "name": "AdminChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "beacon",
          "type": "address"
        }
      ],
      "name": "BeaconUpgraded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "oldImplementation",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "newImplemntation",
          "type": "address"
        }
      ],
      "name": "LogCoreContractUpgraded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "implementation",
          "type": "address"
        }
      ],
      "name": "Upgraded",
      "type": "event"
    },
    {
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "inputs": [],
      "name": "implementation",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newImplementation",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "upgradeToAndCall",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "allSourcePaths": {
    "21": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/Address.sol",
    "23": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/StorageSlot.sol",
    "5": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/interfaces/draft-IERC1822.sol",
    "52": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/shared/ICoreProxy.sol",
    "6": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/proxy/ERC1967/ERC1967Proxy.sol",
    "7": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/proxy/ERC1967/ERC1967Upgrade.sol",
    "8": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/proxy/Proxy.sol",
    "89": "contracts/shared/CoreProxy.sol",
    "9": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/proxy/beacon/IBeacon.sol"
  },
  "ast": {
    "absolutePath": "contracts/shared/CoreProxy.sol",
    "exportedSymbols": {
      "Address": [
        26374
      ],
      "CoreProxy": [
        14998
      ],
      "ERC1967Proxy": [
        24111
      ],
      "ERC1967Upgrade": [
        27521
      ],
      "IBeacon": [
        28646
      ],
      "ICoreProxy": [
        24120
      ],
      "IERC1822Proxiable": [
        28636
      ],
      "Proxy": [
        27573
      ],
      "StorageSlot": [
        28706
      ]
    },
    "id": 14999,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 14926,
        "literals": [
          "solidity",
          "0.8",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:22:89"
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/shared/ICoreProxy.sol",
        "file": "@etherisc/gif-interface/contracts/shared/ICoreProxy.sol",
        "id": 14927,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 14999,
        "sourceUnit": 24121,
        "src": "64:65:89",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/proxy/ERC1967/ERC1967Proxy.sol",
        "file": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol",
        "id": 14928,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 14999,
        "sourceUnit": 24112,
        "src": "130:64:89",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 14929,
              "name": "ICoreProxy",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 24120,
              "src": "223:10:89"
            },
            "id": 14930,
            "nodeType": "InheritanceSpecifier",
            "src": "223:10:89"
          },
          {
            "baseName": {
              "id": 14931,
              "name": "ERC1967Proxy",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 24111,
              "src": "240:12:89"
            },
            "id": 14932,
            "nodeType": "InheritanceSpecifier",
            "src": "240:12:89"
          }
        ],
        "contractDependencies": [
          24111,
          24120,
          27521,
          27573
        ],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 14998,
        "linearizedBaseContracts": [
          14998,
          24111,
          27521,
          27573,
          24120
        ],
        "name": "CoreProxy",
        "nameLocation": "205:9:89",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 14944,
              "nodeType": "Block",
              "src": "281:114:89",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 14939,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 14935,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -15,
                            "src": "312:3:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 14936,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "src": "312:10:89",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 14937,
                            "name": "_getAdmin",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 27381,
                            "src": "326:9:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                              "typeString": "function () view returns (address)"
                            }
                          },
                          "id": 14938,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "326:11:89",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "312:25:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a4352502d3030313a4e4f545f41444d494e",
                        "id": 14940,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "351:25:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0040c7b535fe8d83323ecc73a5169249b6133b5d656b3adacba7405479c95dea",
                          "typeString": "literal_string \"ERROR:CRP-001:NOT_ADMIN\""
                        },
                        "value": "ERROR:CRP-001:NOT_ADMIN"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0040c7b535fe8d83323ecc73a5169249b6133b5d656b3adacba7405479c95dea",
                          "typeString": "literal_string \"ERROR:CRP-001:NOT_ADMIN\""
                        }
                      ],
                      "id": 14934,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "291:7:89",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 14941,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "291:86:89",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 14942,
                  "nodeType": "ExpressionStatement",
                  "src": "291:86:89"
                },
                {
                  "id": 14943,
                  "nodeType": "PlaceholderStatement",
                  "src": "387:1:89"
                }
              ]
            },
            "id": 14945,
            "name": "onlyAdmin",
            "nameLocation": "269:9:89",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 14933,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "278:2:89"
            },
            "src": "260:135:89",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 14961,
              "nodeType": "Block",
              "src": "529:41:89",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 14957,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "552:3:89",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 14958,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "552:10:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 14956,
                      "name": "_changeAdmin",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27424,
                      "src": "539:12:89",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 14959,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "539:24:89",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 14960,
                  "nodeType": "ExpressionStatement",
                  "src": "539:24:89"
                }
              ]
            },
            "id": 14962,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 14952,
                    "name": "_controller",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 14947,
                    "src": "490:11:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "id": 14953,
                    "name": "encoded_initializer",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 14949,
                    "src": "503:19:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  }
                ],
                "id": 14954,
                "modifierName": {
                  "id": 14951,
                  "name": "ERC1967Proxy",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 24111,
                  "src": "477:12:89"
                },
                "nodeType": "ModifierInvocation",
                "src": "477:46:89"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14950,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14947,
                  "mutability": "mutable",
                  "name": "_controller",
                  "nameLocation": "421:11:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 14962,
                  "src": "413:19:89",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14946,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "413:7:89",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14949,
                  "mutability": "mutable",
                  "name": "encoded_initializer",
                  "nameLocation": "447:19:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 14962,
                  "src": "434:32:89",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 14948,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "434:5:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "412:55:89"
            },
            "returnParameters": {
              "id": 14955,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "529:0:89"
            },
            "scope": 14998,
            "src": "401:169:89",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14970,
              "nodeType": "Block",
              "src": "634:41:89",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 14967,
                      "name": "_implementation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        24110
                      ],
                      "referencedDeclaration": 24110,
                      "src": "651:15:89",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                        "typeString": "function () view returns (address)"
                      }
                    },
                    "id": 14968,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "651:17:89",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 14966,
                  "id": 14969,
                  "nodeType": "Return",
                  "src": "644:24:89"
                }
              ]
            },
            "functionSelector": "5c60da1b",
            "id": 14971,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "implementation",
            "nameLocation": "585:14:89",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14963,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "599:2:89"
            },
            "returnParameters": {
              "id": 14966,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14965,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 14971,
                  "src": "625:7:89",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14964,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "625:7:89",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "624:9:89"
            },
            "scope": 14998,
            "src": "576:99:89",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 14996,
              "nodeType": "Block",
              "src": "811:225:89",
              "statements": [
                {
                  "assignments": [
                    14981
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 14981,
                      "mutability": "mutable",
                      "name": "oldImplementation",
                      "nameLocation": "829:17:89",
                      "nodeType": "VariableDeclaration",
                      "scope": 14996,
                      "src": "821:25:89",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 14980,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "821:7:89",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 14984,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 14982,
                      "name": "_implementation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        24110
                      ],
                      "referencedDeclaration": 24110,
                      "src": "850:15:89",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                        "typeString": "function () view returns (address)"
                      }
                    },
                    "id": 14983,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "850:17:89",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "821:46:89"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 14986,
                        "name": "newImplementation",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14973,
                        "src": "896:17:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 14987,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14975,
                        "src": "915:4:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      },
                      {
                        "hexValue": "74727565",
                        "id": 14988,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "921:4:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 14985,
                      "name": "_upgradeToAndCall",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27304,
                      "src": "878:17:89",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (address,bytes memory,bool)"
                      }
                    },
                    "id": 14989,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "878:48:89",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 14990,
                  "nodeType": "ExpressionStatement",
                  "src": "878:48:89"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 14992,
                        "name": "oldImplementation",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14981,
                        "src": "979:17:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 14993,
                        "name": "newImplementation",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14973,
                        "src": "1011:17:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 14991,
                      "name": "LogCoreContractUpgraded",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24119,
                      "src": "942:23:89",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$",
                        "typeString": "function (address,address)"
                      }
                    },
                    "id": 14994,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "942:87:89",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 14995,
                  "nodeType": "EmitStatement",
                  "src": "937:92:89"
                }
              ]
            },
            "functionSelector": "4f1ef286",
            "id": 14997,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 14978,
                "modifierName": {
                  "id": 14977,
                  "name": "onlyAdmin",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 14945,
                  "src": "797:9:89"
                },
                "nodeType": "ModifierInvocation",
                "src": "797:9:89"
              }
            ],
            "name": "upgradeToAndCall",
            "nameLocation": "690:16:89",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14976,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14973,
                  "mutability": "mutable",
                  "name": "newImplementation",
                  "nameLocation": "715:17:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 14997,
                  "src": "707:25:89",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14972,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "707:7:89",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14975,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "749:4:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 14997,
                  "src": "734:19:89",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 14974,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "734:5:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "706:48:89"
            },
            "returnParameters": {
              "id": 14979,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "811:0:89"
            },
            "scope": 14998,
            "src": "681:355:89",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 14999,
        "src": "196:846:89"
      }
    ],
    "src": "39:1004:89"
  },
  "bytecode": "60806040523480156200001157600080fd5b5060405162000c0c38038062000c0c83398101604081905262000034916200043b565b818162000044828260006200005a565b506200005290503362000097565b5050620005a9565b6200006583620000f2565b600082511180620000735750805b1562000092576200009083836200013460201b620001ae1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c262000163565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ef816200019c565b50565b620000fd8162000251565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015c838360405180606001604052806027815260200162000be56027913962000305565b9392505050565b60006200018d60008051602062000bc583398151915260001b620003eb60201b620001da1760201c565b546001600160a01b0316905090565b6001600160a01b038116620002075760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200023060008051602062000bc583398151915260001b620003eb60201b620001da1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200026781620003ee60201b620001dd1760201c565b620002cb5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001fe565b80620002307f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b620003eb60201b620001da1760201c565b60606001600160a01b0384163b6200036f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001fe565b600080856001600160a01b0316856040516200038c919062000511565b600060405180830381855af49150503d8060008114620003c9576040519150601f19603f3d011682016040523d82523d6000602084013e620003ce565b606091505b509092509050620003e1828286620003fd565b9695505050505050565b90565b6001600160a01b03163b151590565b606083156200040e5750816200015c565b8251156200041f5782518084602001fd5b8160405162461bcd60e51b8152600401620001fe91906200052f565b600080604083850312156200044e578182fd5b82516001600160a01b038116811462000465578283fd5b60208401519092506001600160401b038082111562000482578283fd5b818501915085601f83011262000496578283fd5b815181811115620004ab57620004ab62000593565b604051601f8201601f19908116603f01168101908382118183101715620004d657620004d662000593565b81604052828152886020848701011115620004ef578586fd5b6200050283602083016020880162000564565b80955050505050509250929050565b600082516200052581846020870162000564565b9190910192915050565b60006020825282518060208401526200055081604085016020870162000564565b601f01601f19169190910160400192915050565b60005b838110156200058157818101518382015260200162000567565b83811115620000905750506000910152565b634e487b7160e01b600052604160045260246000fd5b61060c80620005b96000396000f3fe60806040526004361061002d5760003560e01c80634f1ef286146100445780635c60da1b146100575761003c565b3661003c5761003a610088565b005b61003a610088565b61003a6100523660046104a9565b61009a565b34801561006357600080fd5b5061006c61019f565b6040516001600160a01b03909116815260200160405180910390f35b6100986100936101ec565b6101f6565b565b6100a261021f565b6001600160a01b0316336001600160a01b0316146101075760405162461bcd60e51b815260206004820152601760248201527f4552524f523a4352502d3030313a4e4f545f41444d494e00000000000000000060448201526064015b60405180910390fd5b60006101116101ec565b90506101568484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610252915050565b604080516001600160a01b038084168252861660208201527faca1087105eb43beb9d5a0283455ab4c7fc8e7412810dca909839c8c2f8be7b5910160405180910390a150505050565b60006101a96101ec565b905090565b60606101d383836040518060600160405280602781526020016105b06027913961027d565b9392505050565b90565b6001600160a01b03163b151590565b60006101a961035a565b3660008037600080366000845af43d6000803e808015610215573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316905090565b61025b83610382565b6000825111806102685750805b1561021a5761027783836101ae565b50505050565b60606001600160a01b0384163b6102e55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016100fe565b600080856001600160a01b0316856040516103009190610534565b600060405180830381855af49150503d806000811461033b576040519150601f19603f3d011682016040523d82523d6000602084013e610340565b606091505b50915091506103508282866103c2565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610243565b61038b816103fb565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606083156103d15750816101d3565b8251156103e15782518084602001fd5b8160405162461bcd60e51b81526004016100fe9190610550565b6001600160a01b0381163b6104685760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100fe565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6000806000604084860312156104bd578283fd5b83356001600160a01b03811681146104d3578384fd5b9250602084013567ffffffffffffffff808211156104ef578384fd5b818601915086601f830112610502578384fd5b813581811115610510578485fd5b876020828501011115610521578485fd5b6020830194508093505050509250925092565b60008251610546818460208701610583565b9190910192915050565b600060208252825180602084015261056f816040850160208701610583565b601f01601f19169190910160400192915050565b60005b8381101561059e578181015183820152602001610586565b83811115610277575050600091015256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220768cbd30aa8b07e6c6bb5ca576b0197ea947e8b703577e49cb92f0b3ea0decd964736f6c63430008020033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564",
  "bytecodeSha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.2+commit.661d1103"
  },
  "contractName": "CoreProxy",
  "coverageMap": {
    "branches": {
      "21": {
        "Address.verifyCallResult": {
          "22": [
            7735,
            7742,
            false
          ],
          "23": [
            7876,
            7897,
            false
          ]
        }
      },
      "23": {},
      "5": {},
      "52": {},
      "6": {},
      "7": {
        "ERC1967Upgrade._upgradeToAndCall": {
          "24": [
            2364,
            2379,
            true
          ],
          "25": [
            2383,
            2392,
            false
          ]
        }
      },
      "8": {},
      "89": {
        "CoreProxy.upgradeToAndCall": {
          "21": [
            312,
            337,
            true
          ]
        }
      },
      "9": {}
    },
    "statements": {
      "21": {
        "Address.functionDelegateCall": {
          "6": [
            6677,
            6761
          ],
          "12": [
            7119,
            7188
          ],
          "13": [
            7276,
            7334
          ]
        },
        "Address.isContract": {
          "7": [
            1458,
            1488
          ]
        },
        "Address.verifyCallResult": {
          "17": [
            7758,
            7775
          ],
          "18": [
            8252,
            8272
          ]
        }
      },
      "23": {},
      "5": {},
      "52": {},
      "6": {
        "ERC1967Proxy._implementation": {
          "8": [
            1239,
            1281
          ]
        }
      },
      "7": {
        "ERC1967Upgrade._getAdmin": {
          "9": [
            4171,
            4223
          ]
        },
        "ERC1967Upgrade._getImplementation": {
          "14": [
            1373,
            1434
          ]
        },
        "ERC1967Upgrade._setImplementation": {
          "19": [
            1605,
            1700
          ],
          "20": [
            1710,
            1784
          ]
        },
        "ERC1967Upgrade._upgradeTo": {
          "15": [
            1963,
            2000
          ],
          "16": [
            2010,
            2042
          ]
        },
        "ERC1967Upgrade._upgradeToAndCall": {
          "10": [
            2321,
            2350
          ],
          "11": [
            2408,
            2461
          ]
        }
      },
      "8": {
        "Proxy.<fallback>": {
          "1": [
            2675,
            2686
          ]
        },
        "Proxy.<receive>": {
          "0": [
            2898,
            2909
          ]
        },
        "Proxy._fallback": {
          "2": [
            2397,
            2425
          ]
        }
      },
      "89": {
        "CoreProxy.implementation": {
          "5": [
            644,
            668
          ]
        },
        "CoreProxy.upgradeToAndCall": {
          "3": [
            878,
            926
          ],
          "4": [
            937,
            1029
          ]
        }
      },
      "9": {}
    }
  },
  "dependencies": [
    "OpenZeppelin/openzeppelin-contracts@4.7.3/Address",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/ERC1967Proxy",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/ERC1967Upgrade",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/IBeacon",
    "etherisc/gif-interface@3b0002a/ICoreProxy",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/IERC1822Proxiable",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/Proxy",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/StorageSlot"
  ],
  "deployedBytecode": "60806040526004361061002d5760003560e01c80634f1ef286146100445780635c60da1b146100575761003c565b3661003c5761003a610088565b005b61003a610088565b61003a6100523660046104a9565b61009a565b34801561006357600080fd5b5061006c61019f565b6040516001600160a01b03909116815260200160405180910390f35b6100986100936101ec565b6101f6565b565b6100a261021f565b6001600160a01b0316336001600160a01b0316146101075760405162461bcd60e51b815260206004820152601760248201527f4552524f523a4352502d3030313a4e4f545f41444d494e00000000000000000060448201526064015b60405180910390fd5b60006101116101ec565b90506101568484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610252915050565b604080516001600160a01b038084168252861660208201527faca1087105eb43beb9d5a0283455ab4c7fc8e7412810dca909839c8c2f8be7b5910160405180910390a150505050565b60006101a96101ec565b905090565b60606101d383836040518060600160405280602781526020016105b06027913961027d565b9392505050565b90565b6001600160a01b03163b151590565b60006101a961035a565b3660008037600080366000845af43d6000803e808015610215573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316905090565b61025b83610382565b6000825111806102685750805b1561021a5761027783836101ae565b50505050565b60606001600160a01b0384163b6102e55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016100fe565b600080856001600160a01b0316856040516103009190610534565b600060405180830381855af49150503d806000811461033b576040519150601f19603f3d011682016040523d82523d6000602084013e610340565b606091505b50915091506103508282866103c2565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610243565b61038b816103fb565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606083156103d15750816101d3565b8251156103e15782518084602001fd5b8160405162461bcd60e51b81526004016100fe9190610550565b6001600160a01b0381163b6104685760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100fe565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6000806000604084860312156104bd578283fd5b83356001600160a01b03811681146104d3578384fd5b9250602084013567ffffffffffffffff808211156104ef578384fd5b818601915086601f830112610502578384fd5b813581811115610510578485fd5b876020828501011115610521578485fd5b6020830194508093505050509250925092565b60008251610546818460208701610583565b9190910192915050565b600060208252825180602084015261056f816040850160208701610583565b601f01601f19169190910160400192915050565b60005b8381101561059e578181015183820152602001610586565b83811115610277575050600091015256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220768cbd30aa8b07e6c6bb5ca576b0197ea947e8b703577e49cb92f0b3ea0decd964736f6c63430008020033",
  "deployedSourceMap": "196:846:89:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2898:11:8;:9;:11::i;:::-;196:846:89;;2675:11:8;:9;:11::i;681:355:89:-;;;;;;:::i;:::-;;:::i;576:99::-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1287:32:103;;;1269:51;;1257:2;1242:18;576:99:89;;;;;;;2322:110:8;2397:28;2407:17;:15;:17::i;:::-;2397:9;:28::i;:::-;2322:110::o;681:355:89:-;326:11;:9;:11::i;:::-;-1:-1:-1;;;;;312:25:89;:10;-1:-1:-1;;;;;312:25:89;;291:86;;;;-1:-1:-1;;;291:86:89;;2230:2:103;291:86:89;;;2212:21:103;2269:2;2249:18;;;2242:30;2308:25;2288:18;;;2281:53;2351:18;;291:86:89;;;;;;;;;821:25:::1;850:17;:15;:17::i;:::-;821:46;;878:48;896:17;915:4;;878:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;921:4:89::1;::::0;-1:-1:-1;878:17:89::1;::::0;-1:-1:-1;;878:48:89:i:1;:::-;942:87;::::0;;-1:-1:-1;;;;;1561:15:103;;;1543:34;;1613:15;;1608:2;1593:18;;1586:43;942:87:89::1;::::0;1478:18:103;942:87:89::1;;;;;;;387:1;681:355:::0;;;:::o;576:99::-;625:7;651:17;:15;:17::i;:::-;644:24;;576:99;:::o;6570:198:21:-;6653:12;6684:77;6705:6;6713:4;6684:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6677:84;6570:198;-1:-1:-1;;;6570:198:21:o;1614:190:23:-;1784:4;1760:38::o;1175:320:21:-;-1:-1:-1;;;;;1465:19:21;;:23;;;1175:320::o;1148:140:6:-;1215:12;1246:35;:33;:35::i;948:895:8:-;1286:14;1283:1;1280;1267:34;1500:1;1497;1481:14;1478:1;1462:14;1455:5;1442:60;1576:16;1573:1;1570;1555:38;1614:6;1681:66;;;;1796:16;1793:1;1786:27;1681:66;1716:16;1713:1;1706:27;1607:220;;;1027:810;:::o;4108:122:7:-;4152:7;3842:66;4178:39;:45;-1:-1:-1;;;;;4178:45:7;;-1:-1:-1;4108:122:7;:::o;2183:295::-;2321:29;2332:17;2321:10;:29::i;:::-;2378:1;2364:4;:11;:15;:28;;;;2383:9;2364:28;2360:112;;;2408:53;2437:17;2456:4;2408:28;:53::i;:::-;;2183:295;;;:::o;6954:387:21:-;7095:12;-1:-1:-1;;;;;1465:19:21;;;7119:69;;;;-1:-1:-1;;;7119:69:21;;2996:2:103;7119:69:21;;;2978:21:103;3035:2;3015:18;;;3008:30;3074:34;3054:18;;;3047:62;-1:-1:-1;;;3125:18:103;;;3118:36;3171:19;;7119:69:21;2968:228:103;7119:69:21;7200:12;7214:23;7241:6;-1:-1:-1;;;;;7241:19:21;7261:4;7241:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7199:67;;;;7283:51;7300:7;7309:10;7321:12;7283:16;:51::i;:::-;7276:58;6954:387;-1:-1:-1;;;;;;6954:387:21:o;1301:140:7:-;1354:7;1030:66;1380:48;1760:38:23;1897:152:7;1963:37;1982:17;1963:18;:37::i;:::-;2015:27;;-1:-1:-1;;;;;2015:27:7;;;;;;;;1897:152;:::o;7561:742:21:-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:21;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;8069:145;8259:12;8252:20;;-1:-1:-1;;;8252:20:21;;;;;;;;:::i;1532:259:7:-;-1:-1:-1;;;;;1465:19:21;;;1605:95:7;;;;-1:-1:-1;;;1605:95:7;;2582:2:103;1605:95:7;;;2564:21:103;2621:2;2601:18;;;2594:30;2660:34;2640:18;;;2633:62;-1:-1:-1;;;2711:18:103;;;2704:43;2764:19;;1605:95:7;2554:235:103;1605:95:7;1030:66;1710:74;;-1:-1:-1;;;;;;1710:74:7;-1:-1:-1;;;;;1710:74:7;;;;;;;;;;1532:259::o;14:825:103:-;;;;162:2;150:9;141:7;137:23;133:32;130:2;;;183:6;175;168:22;130:2;214:23;;-1:-1:-1;;;;;266:31:103;;256:42;;246:2;;317:6;309;302:22;246:2;345:5;-1:-1:-1;401:2:103;386:18;;373:32;424:18;454:14;;;451:2;;;486:6;478;471:22;451:2;529:6;518:9;514:22;504:32;;574:7;567:4;563:2;559:13;555:27;545:2;;601:6;593;586:22;545:2;646;633:16;672:2;664:6;661:14;658:2;;;693:6;685;678:22;658:2;743:7;738:2;729:6;725:2;721:15;717:24;714:37;711:2;;;769:6;761;754:22;711:2;805;801;797:11;787:21;;827:6;817:16;;;;;120:719;;;;;:::o;844:274::-;;1011:6;1005:13;1027:53;1073:6;1068:3;1061:4;1053:6;1049:17;1027:53;:::i;:::-;1096:16;;;;;981:137;-1:-1:-1;;981:137:103:o;1640:383::-;;1789:2;1778:9;1771:21;1821:6;1815:13;1864:6;1859:2;1848:9;1844:18;1837:34;1880:66;1939:6;1934:2;1923:9;1919:18;1914:2;1906:6;1902:15;1880:66;:::i;:::-;2007:2;1986:15;-1:-1:-1;;1982:29:103;1967:45;;;;2014:2;1963:54;;1761:262;-1:-1:-1;;1761:262:103:o;3201:258::-;3273:1;3283:113;3297:6;3294:1;3291:13;3283:113;;;3373:11;;;3367:18;3354:11;;;3347:39;3319:2;3312:10;3283:113;;;3414:6;3411:1;3408:13;3405:2;;;-1:-1:-1;;3449:1:103;3431:16;;3424:27;3254:205::o",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "offset": [
    196,
    1042
  ],
  "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x57 JUMPI PUSH2 0x3C JUMP JUMPDEST CALLDATASIZE PUSH2 0x3C JUMPI PUSH2 0x3A PUSH2 0x88 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3A PUSH2 0x88 JUMP JUMPDEST PUSH2 0x3A PUSH2 0x52 CALLDATASIZE PUSH1 0x4 PUSH2 0x4A9 JUMP JUMPDEST PUSH2 0x9A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6C PUSH2 0x19F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x98 PUSH2 0x93 PUSH2 0x1EC JUMP JUMPDEST PUSH2 0x1F6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xA2 PUSH2 0x21F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x107 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352502D3030313A4E4F545F41444D494E000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x111 PUSH2 0x1EC JUMP JUMPDEST SWAP1 POP PUSH2 0x156 DUP5 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x252 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND DUP3 MSTORE DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xACA1087105EB43BEB9D5A0283455AB4C7FC8E7412810DCA909839C8C2F8BE7B5 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A9 PUSH2 0x1EC JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1D3 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x5B0 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x27D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A9 PUSH2 0x35A JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x215 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x25B DUP4 PUSH2 0x382 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x268 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x21A JUMPI PUSH2 0x277 DUP4 DUP4 PUSH2 0x1AE JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x2E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xFE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x300 SWAP2 SWAP1 PUSH2 0x534 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x33B 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 0x340 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x350 DUP3 DUP3 DUP7 PUSH2 0x3C2 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x243 JUMP JUMPDEST PUSH2 0x38B DUP2 PUSH2 0x3FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3D1 JUMPI POP DUP2 PUSH2 0x1D3 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x3E1 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFE SWAP2 SWAP1 PUSH2 0x550 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x468 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xFE JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4BD JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4D3 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x4EF JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x502 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x510 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x521 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x546 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x583 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x56F DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x583 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x59E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x586 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x277 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x70667358221220768CBD ADDRESS 0xAA DUP12 SMOD 0xE6 0xC6 0xBB 0x5C 0xA5 PUSH23 0xB0197EA947E8B703577E49CB92F0B3EA0DECD964736F6C PUSH4 0x43000802 STOP CALLER ",
  "pcMap": {
    "0": {
      "offset": [
        196,
        1042
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x80"
    },
    "2": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x40"
    },
    "4": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "MSTORE",
      "path": "89"
    },
    "5": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x4"
    },
    "7": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "CALLDATASIZE",
      "path": "89"
    },
    "8": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "LT",
      "path": "89"
    },
    "9": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "PUSH2",
      "path": "89",
      "value": "0x2D"
    },
    "12": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "JUMPI",
      "path": "89"
    },
    "13": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x0"
    },
    "15": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "CALLDATALOAD",
      "path": "89"
    },
    "16": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0xE0"
    },
    "18": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "SHR",
      "path": "89"
    },
    "19": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "DUP1",
      "path": "89"
    },
    "20": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "PUSH4",
      "path": "89",
      "value": "0x4F1EF286"
    },
    "25": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "EQ",
      "path": "89"
    },
    "26": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "PUSH2",
      "path": "89",
      "value": "0x44"
    },
    "29": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "JUMPI",
      "path": "89"
    },
    "30": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "DUP1",
      "path": "89"
    },
    "31": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "PUSH4",
      "path": "89",
      "value": "0x5C60DA1B"
    },
    "36": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "EQ",
      "path": "89"
    },
    "37": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "PUSH2",
      "path": "89",
      "value": "0x57"
    },
    "40": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "JUMPI",
      "path": "89"
    },
    "41": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "PUSH2",
      "path": "89",
      "value": "0x3C"
    },
    "44": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "JUMP",
      "path": "89"
    },
    "45": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "JUMPDEST",
      "path": "89"
    },
    "46": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "CALLDATASIZE",
      "path": "89"
    },
    "47": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "PUSH2",
      "path": "89",
      "value": "0x3C"
    },
    "50": {
      "fn": null,
      "offset": [
        196,
        1042
      ],
      "op": "JUMPI",
      "path": "89"
    },
    "51": {
      "fn": "Proxy.<receive>",
      "offset": [
        2898,
        2909
      ],
      "op": "PUSH2",
      "path": "8",
      "statement": 0,
      "value": "0x3A"
    },
    "54": {
      "fn": "Proxy.<receive>",
      "offset": [
        2898,
        2907
      ],
      "op": "PUSH2",
      "path": "8",
      "value": "0x88"
    },
    "57": {
      "fn": "Proxy.<receive>",
      "jump": "i",
      "offset": [
        2898,
        2909
      ],
      "op": "JUMP",
      "path": "8"
    },
    "58": {
      "fn": "Proxy.<receive>",
      "offset": [
        2898,
        2909
      ],
      "op": "JUMPDEST",
      "path": "8"
    },
    "59": {
      "offset": [
        196,
        1042
      ],
      "op": "STOP",
      "path": "89"
    },
    "60": {
      "fn": "Proxy.<receive>",
      "offset": [
        196,
        1042
      ],
      "op": "JUMPDEST",
      "path": "89"
    },
    "61": {
      "fn": "Proxy.<fallback>",
      "offset": [
        2675,
        2686
      ],
      "op": "PUSH2",
      "path": "8",
      "statement": 1,
      "value": "0x3A"
    },
    "64": {
      "fn": "Proxy.<fallback>",
      "offset": [
        2675,
        2684
      ],
      "op": "PUSH2",
      "path": "8",
      "value": "0x88"
    },
    "67": {
      "fn": "Proxy.<fallback>",
      "jump": "i",
      "offset": [
        2675,
        2686
      ],
      "op": "JUMP",
      "path": "8"
    },
    "68": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        681,
        1036
      ],
      "op": "JUMPDEST",
      "path": "89"
    },
    "69": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        681,
        1036
      ],
      "op": "PUSH2",
      "path": "89",
      "value": "0x3A"
    },
    "72": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        681,
        1036
      ],
      "op": "PUSH2",
      "path": "89",
      "value": "0x52"
    },
    "75": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        681,
        1036
      ],
      "op": "CALLDATASIZE",
      "path": "89"
    },
    "76": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        681,
        1036
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x4"
    },
    "78": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        681,
        1036
      ],
      "op": "PUSH2",
      "path": "89",
      "value": "0x4A9"
    },
    "81": {
      "fn": "CoreProxy.upgradeToAndCall",
      "jump": "i",
      "offset": [
        681,
        1036
      ],
      "op": "JUMP",
      "path": "89"
    },
    "82": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        681,
        1036
      ],
      "op": "JUMPDEST",
      "path": "89"
    },
    "83": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        681,
        1036
      ],
      "op": "PUSH2",
      "path": "89",
      "value": "0x9A"
    },
    "86": {
      "fn": "CoreProxy.upgradeToAndCall",
      "jump": "i",
      "offset": [
        681,
        1036
      ],
      "op": "JUMP",
      "path": "89"
    },
    "87": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "JUMPDEST",
      "path": "89"
    },
    "88": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "CALLVALUE",
      "path": "89"
    },
    "89": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "DUP1",
      "path": "89"
    },
    "90": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "ISZERO",
      "path": "89"
    },
    "91": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "PUSH2",
      "path": "89",
      "value": "0x63"
    },
    "94": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "JUMPI",
      "path": "89"
    },
    "95": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x0"
    },
    "97": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "DUP1",
      "path": "89"
    },
    "98": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "REVERT",
      "path": "89"
    },
    "99": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "JUMPDEST",
      "path": "89"
    },
    "100": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "POP",
      "path": "89"
    },
    "101": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "PUSH2",
      "path": "89",
      "value": "0x6C"
    },
    "104": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "PUSH2",
      "path": "89",
      "value": "0x19F"
    },
    "107": {
      "fn": "CoreProxy.implementation",
      "jump": "i",
      "offset": [
        576,
        675
      ],
      "op": "JUMP",
      "path": "89"
    },
    "108": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "JUMPDEST",
      "path": "89"
    },
    "109": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x40"
    },
    "111": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "MLOAD",
      "path": "89"
    },
    "112": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "114": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "116": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "118": {
      "op": "SHL"
    },
    "119": {
      "op": "SUB"
    },
    "120": {
      "op": "SWAP1"
    },
    "121": {
      "op": "SWAP2"
    },
    "122": {
      "op": "AND"
    },
    "123": {
      "op": "DUP2"
    },
    "124": {
      "op": "MSTORE"
    },
    "125": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "127": {
      "op": "ADD"
    },
    "128": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x40"
    },
    "130": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "MLOAD",
      "path": "89"
    },
    "131": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "DUP1",
      "path": "89"
    },
    "132": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "SWAP2",
      "path": "89"
    },
    "133": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "SUB",
      "path": "89"
    },
    "134": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "SWAP1",
      "path": "89"
    },
    "135": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "RETURN",
      "path": "89"
    },
    "136": {
      "fn": "Proxy._fallback",
      "offset": [
        2322,
        2432
      ],
      "op": "JUMPDEST",
      "path": "8"
    },
    "137": {
      "fn": "Proxy._fallback",
      "offset": [
        2397,
        2425
      ],
      "op": "PUSH2",
      "path": "8",
      "statement": 2,
      "value": "0x98"
    },
    "140": {
      "fn": "Proxy._fallback",
      "offset": [
        2407,
        2424
      ],
      "op": "PUSH2",
      "path": "8",
      "value": "0x93"
    },
    "143": {
      "fn": "Proxy._fallback",
      "offset": [
        2407,
        2422
      ],
      "op": "PUSH2",
      "path": "8",
      "value": "0x1EC"
    },
    "146": {
      "fn": "Proxy._fallback",
      "jump": "i",
      "offset": [
        2407,
        2424
      ],
      "op": "JUMP",
      "path": "8"
    },
    "147": {
      "fn": "Proxy._fallback",
      "offset": [
        2407,
        2424
      ],
      "op": "JUMPDEST",
      "path": "8"
    },
    "148": {
      "fn": "Proxy._fallback",
      "offset": [
        2397,
        2406
      ],
      "op": "PUSH2",
      "path": "8",
      "value": "0x1F6"
    },
    "151": {
      "fn": "Proxy._fallback",
      "jump": "i",
      "offset": [
        2397,
        2425
      ],
      "op": "JUMP",
      "path": "8"
    },
    "152": {
      "fn": "Proxy._fallback",
      "offset": [
        2397,
        2425
      ],
      "op": "JUMPDEST",
      "path": "8"
    },
    "153": {
      "fn": "Proxy._fallback",
      "jump": "o",
      "offset": [
        2322,
        2432
      ],
      "op": "JUMP",
      "path": "8"
    },
    "154": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        681,
        1036
      ],
      "op": "JUMPDEST",
      "path": "89"
    },
    "155": {
      "offset": [
        326,
        337
      ],
      "op": "PUSH2",
      "path": "89",
      "value": "0xA2"
    },
    "158": {
      "offset": [
        326,
        335
      ],
      "op": "PUSH2",
      "path": "89",
      "value": "0x21F"
    },
    "161": {
      "jump": "i",
      "offset": [
        326,
        337
      ],
      "op": "JUMP",
      "path": "89"
    },
    "162": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        326,
        337
      ],
      "op": "JUMPDEST",
      "path": "89"
    },
    "163": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "165": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "167": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "169": {
      "op": "SHL"
    },
    "170": {
      "op": "SUB"
    },
    "171": {
      "offset": [
        312,
        337
      ],
      "op": "AND",
      "path": "89"
    },
    "172": {
      "offset": [
        312,
        322
      ],
      "op": "CALLER",
      "path": "89"
    },
    "173": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "175": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "177": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "179": {
      "op": "SHL"
    },
    "180": {
      "op": "SUB"
    },
    "181": {
      "offset": [
        312,
        337
      ],
      "op": "AND",
      "path": "89"
    },
    "182": {
      "branch": 21,
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        312,
        337
      ],
      "op": "EQ",
      "path": "89"
    },
    "183": {
      "offset": [
        291,
        377
      ],
      "op": "PUSH2",
      "path": "89",
      "value": "0x107"
    },
    "186": {
      "branch": 21,
      "offset": [
        291,
        377
      ],
      "op": "JUMPI",
      "path": "89"
    },
    "187": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        291,
        377
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x40"
    },
    "189": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        291,
        377
      ],
      "op": "MLOAD",
      "path": "89"
    },
    "190": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "194": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "196": {
      "op": "SHL"
    },
    "197": {
      "offset": [
        291,
        377
      ],
      "op": "DUP2",
      "path": "89"
    },
    "198": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        291,
        377
      ],
      "op": "MSTORE",
      "path": "89"
    },
    "199": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "201": {
      "offset": [
        291,
        377
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x4"
    },
    "203": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        291,
        377
      ],
      "op": "DUP3",
      "path": "89"
    },
    "204": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        291,
        377
      ],
      "op": "ADD",
      "path": "89"
    },
    "205": {
      "op": "MSTORE"
    },
    "206": {
      "op": "PUSH1",
      "value": "0x17"
    },
    "208": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "210": {
      "op": "DUP3"
    },
    "211": {
      "op": "ADD"
    },
    "212": {
      "op": "MSTORE"
    },
    "213": {
      "op": "PUSH32",
      "value": "0x4552524F523A4352502D3030313A4E4F545F41444D494E000000000000000000"
    },
    "246": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "248": {
      "op": "DUP3"
    },
    "249": {
      "op": "ADD"
    },
    "250": {
      "op": "MSTORE"
    },
    "251": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "253": {
      "op": "ADD"
    },
    "254": {
      "offset": [
        291,
        377
      ],
      "op": "JUMPDEST",
      "path": "89"
    },
    "255": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        291,
        377
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x40"
    },
    "257": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        291,
        377
      ],
      "op": "MLOAD",
      "path": "89"
    },
    "258": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        291,
        377
      ],
      "op": "DUP1",
      "path": "89"
    },
    "259": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        291,
        377
      ],
      "op": "SWAP2",
      "path": "89"
    },
    "260": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        291,
        377
      ],
      "op": "SUB",
      "path": "89"
    },
    "261": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        291,
        377
      ],
      "op": "SWAP1",
      "path": "89"
    },
    "262": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        291,
        377
      ],
      "op": "REVERT",
      "optimizer_revert": true,
      "path": "89"
    },
    "263": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        291,
        377
      ],
      "op": "JUMPDEST",
      "path": "89"
    },
    "264": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        821,
        846
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x0"
    },
    "266": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        850,
        867
      ],
      "op": "PUSH2",
      "path": "89",
      "value": "0x111"
    },
    "269": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        850,
        865
      ],
      "op": "PUSH2",
      "path": "89",
      "value": "0x1EC"
    },
    "272": {
      "fn": "CoreProxy.upgradeToAndCall",
      "jump": "i",
      "offset": [
        850,
        867
      ],
      "op": "JUMP",
      "path": "89"
    },
    "273": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        850,
        867
      ],
      "op": "JUMPDEST",
      "path": "89"
    },
    "274": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        821,
        867
      ],
      "op": "SWAP1",
      "path": "89"
    },
    "275": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        821,
        867
      ],
      "op": "POP",
      "path": "89"
    },
    "276": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "PUSH2",
      "path": "89",
      "statement": 3,
      "value": "0x156"
    },
    "279": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        896,
        913
      ],
      "op": "DUP5",
      "path": "89"
    },
    "280": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        915,
        919
      ],
      "op": "DUP5",
      "path": "89"
    },
    "281": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        915,
        919
      ],
      "op": "DUP5",
      "path": "89"
    },
    "282": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "DUP1",
      "path": "89"
    },
    "283": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "DUP1",
      "path": "89"
    },
    "284": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x1F"
    },
    "286": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "ADD",
      "path": "89"
    },
    "287": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x20"
    },
    "289": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "DUP1",
      "path": "89"
    },
    "290": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "SWAP2",
      "path": "89"
    },
    "291": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "DIV",
      "path": "89"
    },
    "292": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "MUL",
      "path": "89"
    },
    "293": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x20"
    },
    "295": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "ADD",
      "path": "89"
    },
    "296": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x40"
    },
    "298": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "MLOAD",
      "path": "89"
    },
    "299": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "SWAP1",
      "path": "89"
    },
    "300": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "DUP2",
      "path": "89"
    },
    "301": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "ADD",
      "path": "89"
    },
    "302": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x40"
    },
    "304": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "MSTORE",
      "path": "89"
    },
    "305": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "DUP1",
      "path": "89"
    },
    "306": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "SWAP4",
      "path": "89"
    },
    "307": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "SWAP3",
      "path": "89"
    },
    "308": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "SWAP2",
      "path": "89"
    },
    "309": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "SWAP1",
      "path": "89"
    },
    "310": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "DUP2",
      "path": "89"
    },
    "311": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "DUP2",
      "path": "89"
    },
    "312": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "MSTORE",
      "path": "89"
    },
    "313": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x20"
    },
    "315": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "ADD",
      "path": "89"
    },
    "316": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "DUP4",
      "path": "89"
    },
    "317": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "DUP4",
      "path": "89"
    },
    "318": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "DUP1",
      "path": "89"
    },
    "319": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "DUP3",
      "path": "89"
    },
    "320": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "DUP5",
      "path": "89"
    },
    "321": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "CALLDATACOPY",
      "path": "89"
    },
    "322": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x0"
    },
    "324": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "SWAP3",
      "path": "89"
    },
    "325": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "ADD",
      "path": "89"
    },
    "326": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "SWAP2",
      "path": "89"
    },
    "327": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "SWAP1",
      "path": "89"
    },
    "328": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "SWAP2",
      "path": "89"
    },
    "329": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "MSTORE",
      "path": "89"
    },
    "330": {
      "op": "POP"
    },
    "331": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        921,
        925
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x1"
    },
    "333": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        921,
        925
      ],
      "op": "SWAP3",
      "path": "89"
    },
    "334": {
      "op": "POP"
    },
    "335": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        895
      ],
      "op": "PUSH2",
      "path": "89",
      "value": "0x252"
    },
    "338": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        895
      ],
      "op": "SWAP2",
      "path": "89"
    },
    "339": {
      "op": "POP"
    },
    "340": {
      "op": "POP"
    },
    "341": {
      "fn": "CoreProxy.upgradeToAndCall",
      "jump": "i",
      "offset": [
        878,
        926
      ],
      "op": "JUMP",
      "path": "89"
    },
    "342": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        878,
        926
      ],
      "op": "JUMPDEST",
      "path": "89"
    },
    "343": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        942,
        1029
      ],
      "op": "PUSH1",
      "path": "89",
      "statement": 4,
      "value": "0x40"
    },
    "345": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        942,
        1029
      ],
      "op": "DUP1",
      "path": "89"
    },
    "346": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        942,
        1029
      ],
      "op": "MLOAD",
      "path": "89"
    },
    "347": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "349": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "351": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "353": {
      "op": "SHL"
    },
    "354": {
      "op": "SUB"
    },
    "355": {
      "op": "DUP1"
    },
    "356": {
      "op": "DUP5"
    },
    "357": {
      "op": "AND"
    },
    "358": {
      "op": "DUP3"
    },
    "359": {
      "op": "MSTORE"
    },
    "360": {
      "op": "DUP7"
    },
    "361": {
      "op": "AND"
    },
    "362": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "364": {
      "op": "DUP3"
    },
    "365": {
      "op": "ADD"
    },
    "366": {
      "op": "MSTORE"
    },
    "367": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        942,
        1029
      ],
      "op": "PUSH32",
      "path": "89",
      "value": "0xACA1087105EB43BEB9D5A0283455AB4C7FC8E7412810DCA909839C8C2F8BE7B5"
    },
    "400": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        942,
        1029
      ],
      "op": "SWAP2",
      "path": "89"
    },
    "401": {
      "op": "ADD"
    },
    "402": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        942,
        1029
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x40"
    },
    "404": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        942,
        1029
      ],
      "op": "MLOAD",
      "path": "89"
    },
    "405": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        942,
        1029
      ],
      "op": "DUP1",
      "path": "89"
    },
    "406": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        942,
        1029
      ],
      "op": "SWAP2",
      "path": "89"
    },
    "407": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        942,
        1029
      ],
      "op": "SUB",
      "path": "89"
    },
    "408": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        942,
        1029
      ],
      "op": "SWAP1",
      "path": "89"
    },
    "409": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        942,
        1029
      ],
      "op": "LOG1",
      "path": "89"
    },
    "410": {
      "offset": [
        387,
        388
      ],
      "op": "POP",
      "path": "89"
    },
    "411": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        681,
        1036
      ],
      "op": "POP",
      "path": "89"
    },
    "412": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        681,
        1036
      ],
      "op": "POP",
      "path": "89"
    },
    "413": {
      "fn": "CoreProxy.upgradeToAndCall",
      "offset": [
        681,
        1036
      ],
      "op": "POP",
      "path": "89"
    },
    "414": {
      "fn": "CoreProxy.upgradeToAndCall",
      "jump": "o",
      "offset": [
        681,
        1036
      ],
      "op": "JUMP",
      "path": "89"
    },
    "415": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "JUMPDEST",
      "path": "89"
    },
    "416": {
      "fn": "CoreProxy.implementation",
      "offset": [
        625,
        632
      ],
      "op": "PUSH1",
      "path": "89",
      "value": "0x0"
    },
    "418": {
      "fn": "CoreProxy.implementation",
      "offset": [
        651,
        668
      ],
      "op": "PUSH2",
      "path": "89",
      "statement": 5,
      "value": "0x1A9"
    },
    "421": {
      "fn": "CoreProxy.implementation",
      "offset": [
        651,
        666
      ],
      "op": "PUSH2",
      "path": "89",
      "value": "0x1EC"
    },
    "424": {
      "fn": "CoreProxy.implementation",
      "jump": "i",
      "offset": [
        651,
        668
      ],
      "op": "JUMP",
      "path": "89"
    },
    "425": {
      "fn": "CoreProxy.implementation",
      "offset": [
        651,
        668
      ],
      "op": "JUMPDEST",
      "path": "89"
    },
    "426": {
      "fn": "CoreProxy.implementation",
      "offset": [
        644,
        668
      ],
      "op": "SWAP1",
      "path": "89"
    },
    "427": {
      "fn": "CoreProxy.implementation",
      "offset": [
        644,
        668
      ],
      "op": "POP",
      "path": "89"
    },
    "428": {
      "fn": "CoreProxy.implementation",
      "offset": [
        576,
        675
      ],
      "op": "SWAP1",
      "path": "89"
    },
    "429": {
      "fn": "CoreProxy.implementation",
      "jump": "o",
      "offset": [
        576,
        675
      ],
      "op": "JUMP",
      "path": "89"
    },
    "430": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6570,
        6768
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "431": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6653,
        6665
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x60"
    },
    "433": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "PUSH2",
      "path": "21",
      "statement": 6,
      "value": "0x1D3"
    },
    "436": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6705,
        6711
      ],
      "op": "DUP4",
      "path": "21"
    },
    "437": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6713,
        6717
      ],
      "op": "DUP4",
      "path": "21"
    },
    "438": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x40"
    },
    "440": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "MLOAD",
      "path": "21"
    },
    "441": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "DUP1",
      "path": "21"
    },
    "442": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x60"
    },
    "444": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "ADD",
      "path": "21"
    },
    "445": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x40"
    },
    "447": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "MSTORE",
      "path": "21"
    },
    "448": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "DUP1",
      "path": "21"
    },
    "449": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x27"
    },
    "451": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "DUP2",
      "path": "21"
    },
    "452": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "MSTORE",
      "path": "21"
    },
    "453": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x20"
    },
    "455": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "ADD",
      "path": "21"
    },
    "456": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x5B0"
    },
    "459": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x27"
    },
    "461": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "SWAP2",
      "path": "21"
    },
    "462": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "CODECOPY",
      "path": "21"
    },
    "463": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6704
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x27D"
    },
    "466": {
      "fn": "Address.functionDelegateCall",
      "jump": "i",
      "offset": [
        6684,
        6761
      ],
      "op": "JUMP",
      "path": "21"
    },
    "467": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "468": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6677,
        6761
      ],
      "op": "SWAP4",
      "path": "21"
    },
    "469": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6570,
        6768
      ],
      "op": "SWAP3",
      "path": "21"
    },
    "470": {
      "op": "POP"
    },
    "471": {
      "op": "POP"
    },
    "472": {
      "op": "POP"
    },
    "473": {
      "fn": "Address.functionDelegateCall",
      "jump": "o",
      "offset": [
        6570,
        6768
      ],
      "op": "JUMP",
      "path": "21"
    },
    "474": {
      "fn": "StorageSlot.getAddressSlot",
      "offset": [
        1614,
        1804
      ],
      "op": "JUMPDEST",
      "path": "23"
    },
    "475": {
      "fn": "StorageSlot.getAddressSlot",
      "offset": [
        1784,
        1788
      ],
      "op": "SWAP1",
      "path": "23"
    },
    "476": {
      "fn": "StorageSlot.getAddressSlot",
      "jump": "o",
      "offset": [
        1760,
        1798
      ],
      "op": "JUMP",
      "path": "23"
    },
    "477": {
      "fn": "Address.isContract",
      "offset": [
        1175,
        1495
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "478": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "480": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "482": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "484": {
      "op": "SHL"
    },
    "485": {
      "op": "SUB"
    },
    "486": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1484
      ],
      "op": "AND",
      "path": "21",
      "statement": 7
    },
    "487": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1484
      ],
      "op": "EXTCODESIZE",
      "path": "21"
    },
    "488": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1488
      ],
      "op": "ISZERO",
      "path": "21"
    },
    "489": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1488
      ],
      "op": "ISZERO",
      "path": "21"
    },
    "490": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1488
      ],
      "op": "SWAP1",
      "path": "21"
    },
    "491": {
      "fn": "Address.isContract",
      "jump": "o",
      "offset": [
        1175,
        1495
      ],
      "op": "JUMP",
      "path": "21"
    },
    "492": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1148,
        1288
      ],
      "op": "JUMPDEST",
      "path": "6"
    },
    "493": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1215,
        1227
      ],
      "op": "PUSH1",
      "path": "6",
      "value": "0x0"
    },
    "495": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1246,
        1281
      ],
      "op": "PUSH2",
      "path": "6",
      "statement": 8,
      "value": "0x1A9"
    },
    "498": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1246,
        1279
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x35A"
    },
    "501": {
      "fn": "ERC1967Proxy._implementation",
      "jump": "i",
      "offset": [
        1246,
        1281
      ],
      "op": "JUMP",
      "path": "6"
    },
    "502": {
      "fn": "Proxy._delegate",
      "offset": [
        948,
        1843
      ],
      "op": "JUMPDEST",
      "path": "8"
    },
    "503": {
      "fn": "Proxy._delegate",
      "offset": [
        1286,
        1300
      ],
      "op": "CALLDATASIZE",
      "path": "8"
    },
    "504": {
      "fn": "Proxy._delegate",
      "offset": [
        1283,
        1284
      ],
      "op": "PUSH1",
      "path": "8",
      "value": "0x0"
    },
    "506": {
      "fn": "Proxy._delegate",
      "offset": [
        1280,
        1281
      ],
      "op": "DUP1",
      "path": "8"
    },
    "507": {
      "fn": "Proxy._delegate",
      "offset": [
        1267,
        1301
      ],
      "op": "CALLDATACOPY",
      "path": "8"
    },
    "508": {
      "fn": "Proxy._delegate",
      "offset": [
        1500,
        1501
      ],
      "op": "PUSH1",
      "path": "8",
      "value": "0x0"
    },
    "510": {
      "fn": "Proxy._delegate",
      "offset": [
        1497,
        1498
      ],
      "op": "DUP1",
      "path": "8"
    },
    "511": {
      "fn": "Proxy._delegate",
      "offset": [
        1481,
        1495
      ],
      "op": "CALLDATASIZE",
      "path": "8"
    },
    "512": {
      "fn": "Proxy._delegate",
      "offset": [
        1478,
        1479
      ],
      "op": "PUSH1",
      "path": "8",
      "value": "0x0"
    },
    "514": {
      "fn": "Proxy._delegate",
      "offset": [
        1462,
        1476
      ],
      "op": "DUP5",
      "path": "8"
    },
    "515": {
      "fn": "Proxy._delegate",
      "offset": [
        1455,
        1460
      ],
      "op": "GAS",
      "path": "8"
    },
    "516": {
      "fn": "Proxy._delegate",
      "offset": [
        1442,
        1502
      ],
      "op": "DELEGATECALL",
      "path": "8"
    },
    "517": {
      "fn": "Proxy._delegate",
      "offset": [
        1576,
        1592
      ],
      "op": "RETURNDATASIZE",
      "path": "8"
    },
    "518": {
      "fn": "Proxy._delegate",
      "offset": [
        1573,
        1574
      ],
      "op": "PUSH1",
      "path": "8",
      "value": "0x0"
    },
    "520": {
      "fn": "Proxy._delegate",
      "offset": [
        1570,
        1571
      ],
      "op": "DUP1",
      "path": "8"
    },
    "521": {
      "fn": "Proxy._delegate",
      "offset": [
        1555,
        1593
      ],
      "op": "RETURNDATACOPY",
      "path": "8"
    },
    "522": {
      "fn": "Proxy._delegate",
      "offset": [
        1614,
        1620
      ],
      "op": "DUP1",
      "path": "8"
    },
    "523": {
      "fn": "Proxy._delegate",
      "offset": [
        1681,
        1747
      ],
      "op": "DUP1",
      "path": "8"
    },
    "524": {
      "fn": "Proxy._delegate",
      "offset": [
        1681,
        1747
      ],
      "op": "ISZERO",
      "path": "8"
    },
    "525": {
      "fn": "Proxy._delegate",
      "offset": [
        1681,
        1747
      ],
      "op": "PUSH2",
      "path": "8",
      "value": "0x215"
    },
    "528": {
      "fn": "Proxy._delegate",
      "offset": [
        1681,
        1747
      ],
      "op": "JUMPI",
      "path": "8"
    },
    "529": {
      "fn": "Proxy._delegate",
      "offset": [
        1796,
        1812
      ],
      "op": "RETURNDATASIZE",
      "path": "8"
    },
    "530": {
      "fn": "Proxy._delegate",
      "offset": [
        1793,
        1794
      ],
      "op": "PUSH1",
      "path": "8",
      "value": "0x0"
    },
    "532": {
      "fn": "Proxy._delegate",
      "offset": [
        1786,
        1813
      ],
      "op": "RETURN",
      "path": "8"
    },
    "533": {
      "fn": "Proxy._delegate",
      "offset": [
        1681,
        1747
      ],
      "op": "JUMPDEST",
      "path": "8"
    },
    "534": {
      "fn": "Proxy._delegate",
      "offset": [
        1716,
        1732
      ],
      "op": "RETURNDATASIZE",
      "path": "8"
    },
    "535": {
      "fn": "Proxy._delegate",
      "offset": [
        1713,
        1714
      ],
      "op": "PUSH1",
      "path": "8",
      "value": "0x0"
    },
    "537": {
      "fn": "Proxy._delegate",
      "offset": [
        1706,
        1733
      ],
      "op": "REVERT",
      "path": "8"
    },
    "538": {
      "fn": "Proxy._delegate",
      "offset": [
        1607,
        1827
      ],
      "op": "JUMPDEST",
      "path": "8"
    },
    "539": {
      "fn": "Proxy._delegate",
      "offset": [
        1607,
        1827
      ],
      "op": "POP",
      "path": "8"
    },
    "540": {
      "fn": "Proxy._delegate",
      "offset": [
        1607,
        1827
      ],
      "op": "POP",
      "path": "8"
    },
    "541": {
      "fn": "Proxy._delegate",
      "offset": [
        1027,
        1837
      ],
      "op": "POP",
      "path": "8"
    },
    "542": {
      "fn": "Proxy._delegate",
      "jump": "o",
      "offset": [
        1027,
        1837
      ],
      "op": "JUMP",
      "path": "8"
    },
    "543": {
      "fn": "ERC1967Upgrade._getAdmin",
      "offset": [
        4108,
        4230
      ],
      "op": "JUMPDEST",
      "path": "7"
    },
    "544": {
      "fn": "ERC1967Upgrade._getAdmin",
      "offset": [
        4152,
        4159
      ],
      "op": "PUSH1",
      "path": "7",
      "value": "0x0"
    },
    "546": {
      "offset": [
        3842,
        3908
      ],
      "op": "PUSH32",
      "path": "7",
      "value": "0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103"
    },
    "579": {
      "fn": "ERC1967Upgrade._getAdmin",
      "offset": [
        4178,
        4217
      ],
      "op": "JUMPDEST",
      "path": "7",
      "statement": 9
    },
    "580": {
      "fn": "ERC1967Upgrade._getAdmin",
      "offset": [
        4178,
        4223
      ],
      "op": "SLOAD",
      "path": "7"
    },
    "581": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "583": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "585": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "587": {
      "op": "SHL"
    },
    "588": {
      "op": "SUB"
    },
    "589": {
      "fn": "ERC1967Upgrade._getAdmin",
      "offset": [
        4178,
        4223
      ],
      "op": "AND",
      "path": "7"
    },
    "590": {
      "fn": "ERC1967Upgrade._getAdmin",
      "offset": [
        4178,
        4223
      ],
      "op": "SWAP1",
      "path": "7"
    },
    "591": {
      "op": "POP"
    },
    "592": {
      "fn": "ERC1967Upgrade._getAdmin",
      "offset": [
        4108,
        4230
      ],
      "op": "SWAP1",
      "path": "7"
    },
    "593": {
      "fn": "ERC1967Upgrade._getAdmin",
      "jump": "o",
      "offset": [
        4108,
        4230
      ],
      "op": "JUMP",
      "path": "7"
    },
    "594": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2183,
        2478
      ],
      "op": "JUMPDEST",
      "path": "7"
    },
    "595": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2321,
        2350
      ],
      "op": "PUSH2",
      "path": "7",
      "statement": 10,
      "value": "0x25B"
    },
    "598": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2332,
        2349
      ],
      "op": "DUP4",
      "path": "7"
    },
    "599": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2321,
        2331
      ],
      "op": "PUSH2",
      "path": "7",
      "value": "0x382"
    },
    "602": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "jump": "i",
      "offset": [
        2321,
        2350
      ],
      "op": "JUMP",
      "path": "7"
    },
    "603": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2321,
        2350
      ],
      "op": "JUMPDEST",
      "path": "7"
    },
    "604": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2378,
        2379
      ],
      "op": "PUSH1",
      "path": "7",
      "value": "0x0"
    },
    "606": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2364,
        2368
      ],
      "op": "DUP3",
      "path": "7"
    },
    "607": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2364,
        2375
      ],
      "op": "MLOAD",
      "path": "7"
    },
    "608": {
      "branch": 24,
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2364,
        2379
      ],
      "op": "GT",
      "path": "7"
    },
    "609": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2364,
        2392
      ],
      "op": "DUP1",
      "path": "7"
    },
    "610": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2364,
        2392
      ],
      "op": "PUSH2",
      "path": "7",
      "value": "0x268"
    },
    "613": {
      "branch": 24,
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2364,
        2392
      ],
      "op": "JUMPI",
      "path": "7"
    },
    "614": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2364,
        2392
      ],
      "op": "POP",
      "path": "7"
    },
    "615": {
      "branch": 25,
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2383,
        2392
      ],
      "op": "DUP1",
      "path": "7"
    },
    "616": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2364,
        2392
      ],
      "op": "JUMPDEST",
      "path": "7"
    },
    "617": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2360,
        2472
      ],
      "op": "ISZERO",
      "path": "7"
    },
    "618": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2360,
        2472
      ],
      "op": "PUSH2",
      "path": "7",
      "value": "0x21A"
    },
    "621": {
      "branch": 25,
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2360,
        2472
      ],
      "op": "JUMPI",
      "path": "7"
    },
    "622": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2408,
        2461
      ],
      "op": "PUSH2",
      "path": "7",
      "statement": 11,
      "value": "0x277"
    },
    "625": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2437,
        2454
      ],
      "op": "DUP4",
      "path": "7"
    },
    "626": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2456,
        2460
      ],
      "op": "DUP4",
      "path": "7"
    },
    "627": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2408,
        2436
      ],
      "op": "PUSH2",
      "path": "7",
      "value": "0x1AE"
    },
    "630": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "jump": "i",
      "offset": [
        2408,
        2461
      ],
      "op": "JUMP",
      "path": "7"
    },
    "631": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2408,
        2461
      ],
      "op": "JUMPDEST",
      "path": "7"
    },
    "632": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2408,
        2461
      ],
      "op": "POP",
      "path": "7"
    },
    "633": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2183,
        2478
      ],
      "op": "POP",
      "path": "7"
    },
    "634": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2183,
        2478
      ],
      "op": "POP",
      "path": "7"
    },
    "635": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2183,
        2478
      ],
      "op": "POP",
      "path": "7"
    },
    "636": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "jump": "o",
      "offset": [
        2183,
        2478
      ],
      "op": "JUMP",
      "path": "7"
    },
    "637": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6954,
        7341
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "638": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7095,
        7107
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x60"
    },
    "640": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "642": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "644": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "646": {
      "op": "SHL"
    },
    "647": {
      "op": "SUB"
    },
    "648": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1484
      ],
      "op": "DUP5",
      "path": "21"
    },
    "649": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1484
      ],
      "op": "AND",
      "path": "21"
    },
    "650": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1484
      ],
      "op": "EXTCODESIZE",
      "path": "21"
    },
    "651": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "PUSH2",
      "path": "21",
      "statement": 12,
      "value": "0x2E5"
    },
    "654": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "JUMPI",
      "path": "21"
    },
    "655": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x40"
    },
    "657": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "MLOAD",
      "path": "21"
    },
    "658": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "662": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "664": {
      "op": "SHL"
    },
    "665": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "DUP2",
      "path": "21"
    },
    "666": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "MSTORE",
      "path": "21"
    },
    "667": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "669": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x4"
    },
    "671": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "DUP3",
      "path": "21"
    },
    "672": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "ADD",
      "path": "21"
    },
    "673": {
      "op": "MSTORE"
    },
    "674": {
      "op": "PUSH1",
      "value": "0x26"
    },
    "676": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "678": {
      "op": "DUP3"
    },
    "679": {
      "op": "ADD"
    },
    "680": {
      "op": "MSTORE"
    },
    "681": {
      "op": "PUSH32",
      "value": "0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F"
    },
    "714": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "716": {
      "op": "DUP3"
    },
    "717": {
      "op": "ADD"
    },
    "718": {
      "op": "MSTORE"
    },
    "719": {
      "op": "PUSH6",
      "value": "0x1B9D1C9858DD"
    },
    "726": {
      "op": "PUSH1",
      "value": "0xD2"
    },
    "728": {
      "op": "SHL"
    },
    "729": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "731": {
      "op": "DUP3"
    },
    "732": {
      "op": "ADD"
    },
    "733": {
      "op": "MSTORE"
    },
    "734": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "736": {
      "op": "ADD"
    },
    "737": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0xFE"
    },
    "740": {
      "op": "JUMP"
    },
    "741": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "742": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7200,
        7212
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x0"
    },
    "744": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7214,
        7237
      ],
      "op": "DUP1",
      "path": "21"
    },
    "745": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7247
      ],
      "op": "DUP6",
      "path": "21"
    },
    "746": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "748": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "750": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "752": {
      "op": "SHL"
    },
    "753": {
      "op": "SUB"
    },
    "754": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7260
      ],
      "op": "AND",
      "path": "21"
    },
    "755": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7261,
        7265
      ],
      "op": "DUP6",
      "path": "21"
    },
    "756": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x40"
    },
    "758": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "MLOAD",
      "path": "21"
    },
    "759": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x300"
    },
    "762": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "SWAP2",
      "path": "21"
    },
    "763": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "SWAP1",
      "path": "21"
    },
    "764": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x534"
    },
    "767": {
      "fn": "Address.functionDelegateCall",
      "jump": "i",
      "offset": [
        7241,
        7266
      ],
      "op": "JUMP",
      "path": "21"
    },
    "768": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "769": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x0"
    },
    "771": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x40"
    },
    "773": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "MLOAD",
      "path": "21"
    },
    "774": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "DUP1",
      "path": "21"
    },
    "775": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "DUP4",
      "path": "21"
    },
    "776": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "SUB",
      "path": "21"
    },
    "777": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "DUP2",
      "path": "21"
    },
    "778": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "DUP6",
      "path": "21"
    },
    "779": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "GAS",
      "path": "21"
    },
    "780": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "DELEGATECALL",
      "path": "21"
    },
    "781": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "SWAP2",
      "path": "21"
    },
    "782": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "POP",
      "path": "21"
    },
    "783": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "POP",
      "path": "21"
    },
    "784": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "RETURNDATASIZE",
      "path": "21"
    },
    "785": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "DUP1",
      "path": "21"
    },
    "786": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x0"
    },
    "788": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "DUP2",
      "path": "21"
    },
    "789": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "EQ",
      "path": "21"
    },
    "790": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x33B"
    },
    "793": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "JUMPI",
      "path": "21"
    },
    "794": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x40"
    },
    "796": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "MLOAD",
      "path": "21"
    },
    "797": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "SWAP2",
      "path": "21"
    },
    "798": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "POP",
      "path": "21"
    },
    "799": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x1F"
    },
    "801": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "NOT",
      "path": "21"
    },
    "802": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x3F"
    },
    "804": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "RETURNDATASIZE",
      "path": "21"
    },
    "805": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "ADD",
      "path": "21"
    },
    "806": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "AND",
      "path": "21"
    },
    "807": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "DUP3",
      "path": "21"
    },
    "808": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "ADD",
      "path": "21"
    },
    "809": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x40"
    },
    "811": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "MSTORE",
      "path": "21"
    },
    "812": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "RETURNDATASIZE",
      "path": "21"
    },
    "813": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "DUP3",
      "path": "21"
    },
    "814": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "MSTORE",
      "path": "21"
    },
    "815": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "RETURNDATASIZE",
      "path": "21"
    },
    "816": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x0"
    },
    "818": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x20"
    },
    "820": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "DUP5",
      "path": "21"
    },
    "821": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "ADD",
      "path": "21"
    },
    "822": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "RETURNDATACOPY",
      "path": "21"
    },
    "823": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x340"
    },
    "826": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "JUMP",
      "path": "21"
    },
    "827": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "828": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x60"
    },
    "830": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "SWAP2",
      "path": "21"
    },
    "831": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "POP",
      "path": "21"
    },
    "832": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "833": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "POP",
      "path": "21"
    },
    "834": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7199,
        7266
      ],
      "op": "SWAP2",
      "path": "21"
    },
    "835": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7199,
        7266
      ],
      "op": "POP",
      "path": "21"
    },
    "836": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7199,
        7266
      ],
      "op": "SWAP2",
      "path": "21"
    },
    "837": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7199,
        7266
      ],
      "op": "POP",
      "path": "21"
    },
    "838": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7283,
        7334
      ],
      "op": "PUSH2",
      "path": "21",
      "statement": 13,
      "value": "0x350"
    },
    "841": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7300,
        7307
      ],
      "op": "DUP3",
      "path": "21"
    },
    "842": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7309,
        7319
      ],
      "op": "DUP3",
      "path": "21"
    },
    "843": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7321,
        7333
      ],
      "op": "DUP7",
      "path": "21"
    },
    "844": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7283,
        7299
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x3C2"
    },
    "847": {
      "fn": "Address.functionDelegateCall",
      "jump": "i",
      "offset": [
        7283,
        7334
      ],
      "op": "JUMP",
      "path": "21"
    },
    "848": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7283,
        7334
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "849": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7276,
        7334
      ],
      "op": "SWAP7",
      "path": "21"
    },
    "850": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6954,
        7341
      ],
      "op": "SWAP6",
      "path": "21"
    },
    "851": {
      "op": "POP"
    },
    "852": {
      "op": "POP"
    },
    "853": {
      "op": "POP"
    },
    "854": {
      "op": "POP"
    },
    "855": {
      "op": "POP"
    },
    "856": {
      "op": "POP"
    },
    "857": {
      "fn": "Address.functionDelegateCall",
      "jump": "o",
      "offset": [
        6954,
        7341
      ],
      "op": "JUMP",
      "path": "21"
    },
    "858": {
      "fn": "ERC1967Upgrade._getImplementation",
      "offset": [
        1301,
        1441
      ],
      "op": "JUMPDEST",
      "path": "7"
    },
    "859": {
      "fn": "ERC1967Upgrade._getImplementation",
      "offset": [
        1354,
        1361
      ],
      "op": "PUSH1",
      "path": "7",
      "value": "0x0"
    },
    "861": {
      "offset": [
        1030,
        1096
      ],
      "op": "PUSH32",
      "path": "7",
      "value": "0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC"
    },
    "894": {
      "fn": "ERC1967Upgrade._getImplementation",
      "offset": [
        1380,
        1428
      ],
      "op": "PUSH2",
      "path": "7",
      "statement": 14,
      "value": "0x243"
    },
    "897": {
      "fn": "StorageSlot.getAddressSlot",
      "offset": [
        1760,
        1798
      ],
      "op": "JUMP",
      "path": "23"
    },
    "898": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        1897,
        2049
      ],
      "op": "JUMPDEST",
      "path": "7"
    },
    "899": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        1963,
        2000
      ],
      "op": "PUSH2",
      "path": "7",
      "statement": 15,
      "value": "0x38B"
    },
    "902": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        1982,
        1999
      ],
      "op": "DUP2",
      "path": "7"
    },
    "903": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        1963,
        1981
      ],
      "op": "PUSH2",
      "path": "7",
      "value": "0x3FB"
    },
    "906": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "jump": "i",
      "offset": [
        1963,
        2000
      ],
      "op": "JUMP",
      "path": "7"
    },
    "907": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        1963,
        2000
      ],
      "op": "JUMPDEST",
      "path": "7"
    },
    "908": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        2015,
        2042
      ],
      "op": "PUSH1",
      "path": "7",
      "statement": 16,
      "value": "0x40"
    },
    "910": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        2015,
        2042
      ],
      "op": "MLOAD",
      "path": "7"
    },
    "911": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "913": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "915": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "917": {
      "op": "SHL"
    },
    "918": {
      "op": "SUB"
    },
    "919": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        2015,
        2042
      ],
      "op": "DUP3",
      "path": "7"
    },
    "920": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        2015,
        2042
      ],
      "op": "AND",
      "path": "7"
    },
    "921": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        2015,
        2042
      ],
      "op": "SWAP1",
      "path": "7"
    },
    "922": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        2015,
        2042
      ],
      "op": "PUSH32",
      "path": "7",
      "value": "0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B"
    },
    "955": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        2015,
        2042
      ],
      "op": "SWAP1",
      "path": "7"
    },
    "956": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        2015,
        2042
      ],
      "op": "PUSH1",
      "path": "7",
      "value": "0x0"
    },
    "958": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        2015,
        2042
      ],
      "op": "SWAP1",
      "path": "7"
    },
    "959": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        2015,
        2042
      ],
      "op": "LOG2",
      "path": "7"
    },
    "960": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        1897,
        2049
      ],
      "op": "POP",
      "path": "7"
    },
    "961": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "jump": "o",
      "offset": [
        1897,
        2049
      ],
      "op": "JUMP",
      "path": "7"
    },
    "962": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7561,
        8303
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "963": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7707,
        7719
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x60"
    },
    "965": {
      "branch": 22,
      "fn": "Address.verifyCallResult",
      "offset": [
        7735,
        7742
      ],
      "op": "DUP4",
      "path": "21"
    },
    "966": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7731,
        8297
      ],
      "op": "ISZERO",
      "path": "21"
    },
    "967": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7731,
        8297
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x3D1"
    },
    "970": {
      "branch": 22,
      "fn": "Address.verifyCallResult",
      "offset": [
        7731,
        8297
      ],
      "op": "JUMPI",
      "path": "21"
    },
    "971": {
      "op": "POP"
    },
    "972": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7765,
        7775
      ],
      "op": "DUP2",
      "path": "21",
      "statement": 17
    },
    "973": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7758,
        7775
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x1D3"
    },
    "976": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7758,
        7775
      ],
      "op": "JUMP",
      "path": "21"
    },
    "977": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7731,
        8297
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "978": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7876,
        7893
      ],
      "op": "DUP3",
      "path": "21"
    },
    "979": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7876,
        7893
      ],
      "op": "MLOAD",
      "path": "21"
    },
    "980": {
      "branch": 23,
      "fn": "Address.verifyCallResult",
      "offset": [
        7876,
        7897
      ],
      "op": "ISZERO",
      "path": "21"
    },
    "981": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7872,
        8287
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x3E1"
    },
    "984": {
      "branch": 23,
      "fn": "Address.verifyCallResult",
      "offset": [
        7872,
        8287
      ],
      "op": "JUMPI",
      "path": "21"
    },
    "985": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8120,
        8130
      ],
      "op": "DUP3",
      "path": "21"
    },
    "986": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8114,
        8131
      ],
      "op": "MLOAD",
      "path": "21"
    },
    "987": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8180,
        8195
      ],
      "op": "DUP1",
      "path": "21"
    },
    "988": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8167,
        8177
      ],
      "op": "DUP5",
      "path": "21"
    },
    "989": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8163,
        8165
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x20"
    },
    "991": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8159,
        8178
      ],
      "op": "ADD",
      "path": "21"
    },
    "992": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8152,
        8196
      ],
      "op": "REVERT",
      "path": "21"
    },
    "993": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8069,
        8214
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "994": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8259,
        8271
      ],
      "op": "DUP2",
      "path": "21",
      "statement": 18
    },
    "995": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8252,
        8272
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x40"
    },
    "997": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8252,
        8272
      ],
      "op": "MLOAD",
      "path": "21"
    },
    "998": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1002": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1004": {
      "op": "SHL"
    },
    "1005": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8252,
        8272
      ],
      "op": "DUP2",
      "path": "21"
    },
    "1006": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8252,
        8272
      ],
      "op": "MSTORE",
      "path": "21"
    },
    "1007": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8252,
        8272
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x4"
    },
    "1009": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8252,
        8272
      ],
      "op": "ADD",
      "path": "21"
    },
    "1010": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8252,
        8272
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0xFE"
    },
    "1013": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8252,
        8272
      ],
      "op": "SWAP2",
      "path": "21"
    },
    "1014": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8252,
        8272
      ],
      "op": "SWAP1",
      "path": "21"
    },
    "1015": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8252,
        8272
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x550"
    },
    "1018": {
      "fn": "Address.verifyCallResult",
      "jump": "i",
      "offset": [
        8252,
        8272
      ],
      "op": "JUMP",
      "path": "21"
    },
    "1019": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1532,
        1791
      ],
      "op": "JUMPDEST",
      "path": "7"
    },
    "1020": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1022": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1024": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1026": {
      "op": "SHL"
    },
    "1027": {
      "op": "SUB"
    },
    "1028": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1484
      ],
      "op": "DUP2",
      "path": "21"
    },
    "1029": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1484
      ],
      "op": "AND",
      "path": "21"
    },
    "1030": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1484
      ],
      "op": "EXTCODESIZE",
      "path": "21"
    },
    "1031": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "PUSH2",
      "path": "7",
      "statement": 19,
      "value": "0x468"
    },
    "1034": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "JUMPI",
      "path": "7"
    },
    "1035": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "PUSH1",
      "path": "7",
      "value": "0x40"
    },
    "1037": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "MLOAD",
      "path": "7"
    },
    "1038": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1042": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1044": {
      "op": "SHL"
    },
    "1045": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "DUP2",
      "path": "7"
    },
    "1046": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "MSTORE",
      "path": "7"
    },
    "1047": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1049": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "PUSH1",
      "path": "7",
      "value": "0x4"
    },
    "1051": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "DUP3",
      "path": "7"
    },
    "1052": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "ADD",
      "path": "7"
    },
    "1053": {
      "op": "MSTORE"
    },
    "1054": {
      "op": "PUSH1",
      "value": "0x2D"
    },
    "1056": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1058": {
      "op": "DUP3"
    },
    "1059": {
      "op": "ADD"
    },
    "1060": {
      "op": "MSTORE"
    },
    "1061": {
      "op": "PUSH32",
      "value": "0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E"
    },
    "1094": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1096": {
      "op": "DUP3"
    },
    "1097": {
      "op": "ADD"
    },
    "1098": {
      "op": "MSTORE"
    },
    "1099": {
      "op": "PUSH13",
      "value": "0x1BDD08184818DBDB9D1C9858DD"
    },
    "1113": {
      "op": "PUSH1",
      "value": "0x9A"
    },
    "1115": {
      "op": "SHL"
    },
    "1116": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1118": {
      "op": "DUP3"
    },
    "1119": {
      "op": "ADD"
    },
    "1120": {
      "op": "MSTORE"
    },
    "1121": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "1123": {
      "op": "ADD"
    },
    "1124": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "PUSH2",
      "path": "7",
      "value": "0xFE"
    },
    "1127": {
      "op": "JUMP"
    },
    "1128": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "JUMPDEST",
      "path": "7"
    },
    "1129": {
      "offset": [
        1030,
        1096
      ],
      "op": "PUSH32",
      "path": "7",
      "value": "0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC"
    },
    "1162": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1710,
        1784
      ],
      "op": "DUP1",
      "path": "7",
      "statement": 20
    },
    "1163": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1710,
        1784
      ],
      "op": "SLOAD",
      "path": "7"
    },
    "1164": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1166": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1168": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1170": {
      "op": "SHL"
    },
    "1171": {
      "op": "SUB"
    },
    "1172": {
      "op": "NOT"
    },
    "1173": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1710,
        1784
      ],
      "op": "AND",
      "path": "7"
    },
    "1174": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1176": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1178": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1180": {
      "op": "SHL"
    },
    "1181": {
      "op": "SUB"
    },
    "1182": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1710,
        1784
      ],
      "op": "SWAP3",
      "path": "7"
    },
    "1183": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1710,
        1784
      ],
      "op": "SWAP1",
      "path": "7"
    },
    "1184": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1710,
        1784
      ],
      "op": "SWAP3",
      "path": "7"
    },
    "1185": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1710,
        1784
      ],
      "op": "AND",
      "path": "7"
    },
    "1186": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1710,
        1784
      ],
      "op": "SWAP2",
      "path": "7"
    },
    "1187": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1710,
        1784
      ],
      "op": "SWAP1",
      "path": "7"
    },
    "1188": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1710,
        1784
      ],
      "op": "SWAP2",
      "path": "7"
    },
    "1189": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1710,
        1784
      ],
      "op": "OR",
      "path": "7"
    },
    "1190": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1710,
        1784
      ],
      "op": "SWAP1",
      "path": "7"
    },
    "1191": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1710,
        1784
      ],
      "op": "SSTORE",
      "path": "7"
    },
    "1192": {
      "fn": "ERC1967Upgrade._setImplementation",
      "jump": "o",
      "offset": [
        1532,
        1791
      ],
      "op": "JUMP",
      "path": "7"
    },
    "1193": {
      "op": "JUMPDEST"
    },
    "1194": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1196": {
      "op": "DUP1"
    },
    "1197": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1199": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "1201": {
      "op": "DUP5"
    },
    "1202": {
      "op": "DUP7"
    },
    "1203": {
      "op": "SUB"
    },
    "1204": {
      "op": "SLT"
    },
    "1205": {
      "op": "ISZERO"
    },
    "1206": {
      "op": "PUSH2",
      "value": "0x4BD"
    },
    "1209": {
      "op": "JUMPI"
    },
    "1210": {
      "op": "DUP3"
    },
    "1211": {
      "op": "DUP4"
    },
    "1212": {
      "op": "REVERT"
    },
    "1213": {
      "op": "JUMPDEST"
    },
    "1214": {
      "op": "DUP4"
    },
    "1215": {
      "op": "CALLDATALOAD"
    },
    "1216": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1218": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1220": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1222": {
      "op": "SHL"
    },
    "1223": {
      "op": "SUB"
    },
    "1224": {
      "op": "DUP2"
    },
    "1225": {
      "op": "AND"
    },
    "1226": {
      "op": "DUP2"
    },
    "1227": {
      "op": "EQ"
    },
    "1228": {
      "op": "PUSH2",
      "value": "0x4D3"
    },
    "1231": {
      "op": "JUMPI"
    },
    "1232": {
      "op": "DUP4"
    },
    "1233": {
      "op": "DUP5"
    },
    "1234": {
      "op": "REVERT"
    },
    "1235": {
      "op": "JUMPDEST"
    },
    "1236": {
      "op": "SWAP3"
    },
    "1237": {
      "op": "POP"
    },
    "1238": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1240": {
      "op": "DUP5"
    },
    "1241": {
      "op": "ADD"
    },
    "1242": {
      "op": "CALLDATALOAD"
    },
    "1243": {
      "op": "PUSH8",
      "value": "0xFFFFFFFFFFFFFFFF"
    },
    "1252": {
      "op": "DUP1"
    },
    "1253": {
      "op": "DUP3"
    },
    "1254": {
      "op": "GT"
    },
    "1255": {
      "op": "ISZERO"
    },
    "1256": {
      "op": "PUSH2",
      "value": "0x4EF"
    },
    "1259": {
      "op": "JUMPI"
    },
    "1260": {
      "op": "DUP4"
    },
    "1261": {
      "op": "DUP5"
    },
    "1262": {
      "op": "REVERT"
    },
    "1263": {
      "op": "JUMPDEST"
    },
    "1264": {
      "op": "DUP2"
    },
    "1265": {
      "op": "DUP7"
    },
    "1266": {
      "op": "ADD"
    },
    "1267": {
      "op": "SWAP2"
    },
    "1268": {
      "op": "POP"
    },
    "1269": {
      "op": "DUP7"
    },
    "1270": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "1272": {
      "op": "DUP4"
    },
    "1273": {
      "op": "ADD"
    },
    "1274": {
      "op": "SLT"
    },
    "1275": {
      "op": "PUSH2",
      "value": "0x502"
    },
    "1278": {
      "op": "JUMPI"
    },
    "1279": {
      "op": "DUP4"
    },
    "1280": {
      "op": "DUP5"
    },
    "1281": {
      "op": "REVERT"
    },
    "1282": {
      "op": "JUMPDEST"
    },
    "1283": {
      "op": "DUP2"
    },
    "1284": {
      "op": "CALLDATALOAD"
    },
    "1285": {
      "op": "DUP2"
    },
    "1286": {
      "op": "DUP2"
    },
    "1287": {
      "op": "GT"
    },
    "1288": {
      "op": "ISZERO"
    },
    "1289": {
      "op": "PUSH2",
      "value": "0x510"
    },
    "1292": {
      "op": "JUMPI"
    },
    "1293": {
      "op": "DUP5"
    },
    "1294": {
      "op": "DUP6"
    },
    "1295": {
      "op": "REVERT"
    },
    "1296": {
      "op": "JUMPDEST"
    },
    "1297": {
      "op": "DUP8"
    },
    "1298": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1300": {
      "op": "DUP3"
    },
    "1301": {
      "op": "DUP6"
    },
    "1302": {
      "op": "ADD"
    },
    "1303": {
      "op": "ADD"
    },
    "1304": {
      "op": "GT"
    },
    "1305": {
      "op": "ISZERO"
    },
    "1306": {
      "op": "PUSH2",
      "value": "0x521"
    },
    "1309": {
      "op": "JUMPI"
    },
    "1310": {
      "op": "DUP5"
    },
    "1311": {
      "op": "DUP6"
    },
    "1312": {
      "op": "REVERT"
    },
    "1313": {
      "op": "JUMPDEST"
    },
    "1314": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1316": {
      "op": "DUP4"
    },
    "1317": {
      "op": "ADD"
    },
    "1318": {
      "op": "SWAP5"
    },
    "1319": {
      "op": "POP"
    },
    "1320": {
      "op": "DUP1"
    },
    "1321": {
      "op": "SWAP4"
    },
    "1322": {
      "op": "POP"
    },
    "1323": {
      "op": "POP"
    },
    "1324": {
      "op": "POP"
    },
    "1325": {
      "op": "POP"
    },
    "1326": {
      "op": "SWAP3"
    },
    "1327": {
      "op": "POP"
    },
    "1328": {
      "op": "SWAP3"
    },
    "1329": {
      "op": "POP"
    },
    "1330": {
      "op": "SWAP3"
    },
    "1331": {
      "jump": "o",
      "op": "JUMP"
    },
    "1332": {
      "op": "JUMPDEST"
    },
    "1333": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1335": {
      "op": "DUP3"
    },
    "1336": {
      "op": "MLOAD"
    },
    "1337": {
      "op": "PUSH2",
      "value": "0x546"
    },
    "1340": {
      "op": "DUP2"
    },
    "1341": {
      "op": "DUP5"
    },
    "1342": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1344": {
      "op": "DUP8"
    },
    "1345": {
      "op": "ADD"
    },
    "1346": {
      "op": "PUSH2",
      "value": "0x583"
    },
    "1349": {
      "jump": "i",
      "op": "JUMP"
    },
    "1350": {
      "op": "JUMPDEST"
    },
    "1351": {
      "op": "SWAP2"
    },
    "1352": {
      "op": "SWAP1"
    },
    "1353": {
      "op": "SWAP2"
    },
    "1354": {
      "op": "ADD"
    },
    "1355": {
      "op": "SWAP3"
    },
    "1356": {
      "op": "SWAP2"
    },
    "1357": {
      "op": "POP"
    },
    "1358": {
      "op": "POP"
    },
    "1359": {
      "jump": "o",
      "op": "JUMP"
    },
    "1360": {
      "op": "JUMPDEST"
    },
    "1361": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1363": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1365": {
      "op": "DUP3"
    },
    "1366": {
      "op": "MSTORE"
    },
    "1367": {
      "op": "DUP3"
    },
    "1368": {
      "op": "MLOAD"
    },
    "1369": {
      "op": "DUP1"
    },
    "1370": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1372": {
      "op": "DUP5"
    },
    "1373": {
      "op": "ADD"
    },
    "1374": {
      "op": "MSTORE"
    },
    "1375": {
      "op": "PUSH2",
      "value": "0x56F"
    },
    "1378": {
      "op": "DUP2"
    },
    "1379": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "1381": {
      "op": "DUP6"
    },
    "1382": {
      "op": "ADD"
    },
    "1383": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1385": {
      "op": "DUP8"
    },
    "1386": {
      "op": "ADD"
    },
    "1387": {
      "op": "PUSH2",
      "value": "0x583"
    },
    "1390": {
      "jump": "i",
      "op": "JUMP"
    },
    "1391": {
      "op": "JUMPDEST"
    },
    "1392": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "1394": {
      "op": "ADD"
    },
    "1395": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "1397": {
      "op": "NOT"
    },
    "1398": {
      "op": "AND"
    },
    "1399": {
      "op": "SWAP2"
    },
    "1400": {
      "op": "SWAP1"
    },
    "1401": {
      "op": "SWAP2"
    },
    "1402": {
      "op": "ADD"
    },
    "1403": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "1405": {
      "op": "ADD"
    },
    "1406": {
      "op": "SWAP3"
    },
    "1407": {
      "op": "SWAP2"
    },
    "1408": {
      "op": "POP"
    },
    "1409": {
      "op": "POP"
    },
    "1410": {
      "jump": "o",
      "op": "JUMP"
    },
    "1411": {
      "op": "JUMPDEST"
    },
    "1412": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1414": {
      "op": "JUMPDEST"
    },
    "1415": {
      "op": "DUP4"
    },
    "1416": {
      "op": "DUP2"
    },
    "1417": {
      "op": "LT"
    },
    "1418": {
      "op": "ISZERO"
    },
    "1419": {
      "op": "PUSH2",
      "value": "0x59E"
    },
    "1422": {
      "op": "JUMPI"
    },
    "1423": {
      "op": "DUP2"
    },
    "1424": {
      "op": "DUP2"
    },
    "1425": {
      "op": "ADD"
    },
    "1426": {
      "op": "MLOAD"
    },
    "1427": {
      "op": "DUP4"
    },
    "1428": {
      "op": "DUP3"
    },
    "1429": {
      "op": "ADD"
    },
    "1430": {
      "op": "MSTORE"
    },
    "1431": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1433": {
      "op": "ADD"
    },
    "1434": {
      "op": "PUSH2",
      "value": "0x586"
    },
    "1437": {
      "op": "JUMP"
    },
    "1438": {
      "op": "JUMPDEST"
    },
    "1439": {
      "op": "DUP4"
    },
    "1440": {
      "op": "DUP2"
    },
    "1441": {
      "op": "GT"
    },
    "1442": {
      "op": "ISZERO"
    },
    "1443": {
      "op": "PUSH2",
      "value": "0x277"
    },
    "1446": {
      "op": "JUMPI"
    },
    "1447": {
      "op": "POP"
    },
    "1448": {
      "op": "POP"
    },
    "1449": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1451": {
      "op": "SWAP2"
    },
    "1452": {
      "op": "ADD"
    },
    "1453": {
      "op": "MSTORE"
    },
    "1454": {
      "jump": "o",
      "op": "JUMP"
    }
  },
  "sha1": "08c1e71e3c6933e5a3f319255e6eeffe6ec50438",
  "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\n\nimport \"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol\";\nimport \"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\";\n\ncontract CoreProxy is \n    ICoreProxy, \n    ERC1967Proxy\n{\n\n    modifier onlyAdmin() {\n        require(\n            msg.sender == _getAdmin(),\n            \"ERROR:CRP-001:NOT_ADMIN\");\n        _;\n    }\n\n    constructor(address _controller, bytes memory encoded_initializer) \n        ERC1967Proxy(_controller, encoded_initializer) \n    {\n        _changeAdmin(msg.sender);\n    }\n\n    function implementation() external view returns (address) {\n        return _implementation();\n    }\n\n    function upgradeToAndCall(address newImplementation, bytes calldata data) \n        external\n        payable\n        onlyAdmin\n    {\n        address oldImplementation =  _implementation();\n\n        _upgradeToAndCall(newImplementation, data, true);\n\n        emit LogCoreContractUpgraded(\n            oldImplementation, \n            newImplementation);\n    }    \n}\n",
  "sourceMap": "196:846:89:-:0;;;401:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;490:11;503:19;1024:39:6;490:11:89;503:19;1057:5:6;1024:17;:39::i;:::-;-1:-1:-1;539:24:89::1;::::0;-1:-1:-1;552:10:89::1;539:12;:24::i;:::-;401:169:::0;;196:846;;2183:295:7;2321:29;2332:17;2321:10;:29::i;:::-;2378:1;2364:4;:11;:15;:28;;;;2383:9;2364:28;2360:112;;;2408:53;2437:17;2456:4;2408:28;;;;;:53;;:::i;:::-;;2360:112;2183:295;;;:::o;4624:135::-;4688:35;4701:11;:9;:11::i;:::-;4688:35;;;-1:-1:-1;;;;;1628:15:103;;;1610:34;;1680:15;;;1675:2;1660:18;;1653:43;1545:18;4688:35:7;;;;;;;4733:19;4743:8;4733:9;:19::i;:::-;4624:135;:::o;1897:152::-;1963:37;1982:17;1963:18;:37::i;:::-;2015:27;;-1:-1:-1;;;;;2015:27:7;;;;;;;;1897:152;:::o;6570:198:21:-;6653:12;6684:77;6705:6;6713:4;6684:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6677:84;6570:198;-1:-1:-1;;;6570:198:21:o;4108:122:7:-;4152:7;4178:39;-1:-1:-1;;;;;;;;;;;4205:11:7;;4178:26;;;;;:39;;:::i;:::-;:45;-1:-1:-1;;;;;4178:45:7;;-1:-1:-1;4108:122:7;:::o;4312:201::-;-1:-1:-1;;;;;4375:22:7;;4367:73;;;;-1:-1:-1;;;4367:73:7;;2297:2:103;4367:73:7;;;2279:21:103;2336:2;2316:18;;;2309:30;2375:34;2355:18;;;2348:62;-1:-1:-1;;;2426:18:103;;;2419:36;2472:19;;4367:73:7;;;;;;;;;4498:8;4450:39;-1:-1:-1;;;;;;;;;;;4477:11:7;;4450:26;;;;;:39;;:::i;:::-;:56;;-1:-1:-1;;;;;;4450:56:7;-1:-1:-1;;;;;4450:56:7;;;;;;;;;;-1:-1:-1;4312:201:7:o;1532:259::-;1613:37;1632:17;1613:18;;;;;:37;;:::i;:::-;1605:95;;;;-1:-1:-1;;;1605:95:7;;2704:2:103;1605:95:7;;;2686:21:103;2743:2;2723:18;;;2716:30;2782:34;2762:18;;;2755:62;-1:-1:-1;;;2833:18:103;;;2826:43;2886:19;;1605:95:7;2676:235:103;1605:95:7;1767:17;1710:48;1030:66;1737:20;;1710:26;;;;;:48;;:::i;6954:387:21:-;7095:12;-1:-1:-1;;;;;1465:19:21;;;7119:69;;;;-1:-1:-1;;;7119:69:21;;3118:2:103;7119:69:21;;;3100:21:103;3157:2;3137:18;;;3130:30;3196:34;3176:18;;;3169:62;-1:-1:-1;;;3247:18:103;;;3240:36;3293:19;;7119:69:21;3090:228:103;7119:69:21;7200:12;7214:23;7241:6;-1:-1:-1;;;;;7241:19:21;7261:4;7241:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7199:67:21;;-1:-1:-1;7199:67:21;-1:-1:-1;7283:51:21;7199:67;;7321:12;7283:16;:51::i;:::-;7276:58;6954:387;-1:-1:-1;;;;;;6954:387:21:o;1614:190:23:-;1784:4;1760:38::o;1175:320:21:-;-1:-1:-1;;;;;1465:19:21;;:23;;;1175:320::o;7561:742::-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:21;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;8069:145;8259:12;8252:20;;-1:-1:-1;;;8252:20:21;;;;;;;;:::i;14:1100:103:-;;;163:2;151:9;142:7;138:23;134:32;131:2;;;184:6;176;169:22;131:2;215:16;;-1:-1:-1;;;;;260:31:103;;250:42;;240:2;;311:6;303;296:22;240:2;388;373:18;;367:25;339:5;;-1:-1:-1;;;;;;441:14:103;;;438:2;;;473:6;465;458:22;438:2;516:6;505:9;501:22;491:32;;561:7;554:4;550:2;546:13;542:27;532:2;;588:6;580;573:22;532:2;622;616:9;644:2;640;637:10;634:2;;;650:18;;:::i;:::-;725:2;719:9;693:2;779:13;;-1:-1:-1;;775:22:103;;;799:2;771:31;767:40;755:53;;;823:18;;;843:22;;;820:46;817:2;;;869:18;;:::i;:::-;909:10;905:2;898:22;944:2;936:6;929:18;984:7;979:2;974;970;966:11;962:20;959:33;956:2;;;1010:6;1002;995:22;956:2;1028:55;1080:2;1075;1067:6;1063:15;1058:2;1054;1050:11;1028:55;:::i;:::-;1102:6;1092:16;;;;;;;121:993;;;;;:::o;1119:274::-;;1286:6;1280:13;1302:53;1348:6;1343:3;1336:4;1328:6;1324:17;1302:53;:::i;:::-;1371:16;;;;;1256:137;-1:-1:-1;;1256:137:103:o;1707:383::-;;1856:2;1845:9;1838:21;1888:6;1882:13;1931:6;1926:2;1915:9;1911:18;1904:34;1947:66;2006:6;2001:2;1990:9;1986:18;1981:2;1973:6;1969:15;1947:66;:::i;:::-;2074:2;2053:15;-1:-1:-1;;2049:29:103;2034:45;;;;2081:2;2030:54;;1828:262;-1:-1:-1;;1828:262:103:o;3323:258::-;3395:1;3405:113;3419:6;3416:1;3413:13;3405:113;;;3495:11;;;3489:18;3476:11;;;3469:39;3441:2;3434:10;3405:113;;;3536:6;3533:1;3530:13;3527:2;;;-1:-1:-1;;3571:1:103;3553:16;;3546:27;3376:205::o;3586:127::-;3647:10;3642:3;3638:20;3635:1;3628:31;3678:4;3675:1;3668:15;3702:4;3699:1;3692:15;3618:95;196:846:89;;;;;;",
  "sourcePath": "contracts/shared/CoreProxy.sol",
  "type": "contract"
}