{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC721Facet",
  "sourceName": "contracts/token/ERC721/facets/ERC721Facet.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "forwarderRegistry",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "ERC721BalanceOfAddressZero",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ERC721NonApprovedForApproval",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ERC721NonApprovedForTransfer",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ERC721NonExistingToken",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ERC721NonOwnedToken",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ERC721SafeTransferRejected",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "ERC721SelfApproval",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "ERC721SelfApprovalForAll",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC721TransferToAddressZero",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "IllegalInterfaceId",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotProxyAdmin",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "approved",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "ApprovalForAll",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getApproved",
      "outputs": [
        {
          "internalType": "address",
          "name": "approved",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "initERC721Storage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "isApprovedForAll",
      "outputs": [
        {
          "internalType": "bool",
          "name": "approvedForAll",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ownerOf",
      "outputs": [
        {
          "internalType": "address",
          "name": "tokenOwner",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "setApprovalForAll",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a034606657601f61121f38819003918201601f19168301916001600160401b03831184841017606b57808492602094604052833981010312606657516001600160a01b038116810360665760805260405161119d9081610082823960805181610de90152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c8063081812fc1461093c578063095ea7b3146106e457806323b872dd146106a357806342842e0e1461063a5780636352211e1461058557806370a08231146104bb578063a22cb46514610390578063b1c7ee0214610256578063b88d4fde146101435763e985e9c51461008a57600080fd5b3461013e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e576100c16109b7565b73ffffffffffffffffffffffffffffffffffffffff6100de6109da565b91166000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c360205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b600080fd5b3461013e5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5761017a6109b7565b6101826109da565b6044356064359167ffffffffffffffff831161013e573660238401121561013e5782600401359367ffffffffffffffff851161013e57366024868601011161013e577fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c06101fa8484846101f3610dd2565b8095610b13565b823b61020257005b6000602061025497806024837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601996102436040519b8c610d62565b828b5201838a013787010152610f95565b005b3461013e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5761028d610dd2565b73ffffffffffffffffffffffffffffffffffffffff807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610354169116908103610363577f80ac58cd000000000000000000000000000000000000000000000000000000006000527fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527f8ed2355fc3f859d445b81332ba1875c675be71b9fe1bab0a25be6436696b0ec780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055005b7f673a31a10000000000000000000000000000000000000000000000000000000060005260045260246000fd5b3461013e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e576103c76109b7565b6024359081151580920361013e5773ffffffffffffffffffffffffffffffffffffffff806103f3610dd2565b1691169181831461048d5760207f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191836000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c38252604060002085600052825260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a3005b507fe4215c6a0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b3461013e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e576104f26109b7565b73ffffffffffffffffffffffffffffffffffffffff81161561055b5773ffffffffffffffffffffffffffffffffffffffff166000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526020604060002054604051908152f35b7faefbce4e0000000000000000000000000000000000000000000000000000000060005260046000fd5b3461013e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e576004357fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c08160005260205273ffffffffffffffffffffffffffffffffffffffff60406000205416801561060c57602090604051908152f35b507fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b3461013e57610648366109fd565b7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c09161067f828286610678610dd2565b8097610b13565b803b61068757005b610254936040519361069a602086610d62565b60008552610f95565b3461013e576102546106b4366109fd565b917fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c06106de610dd2565b90610b13565b3461013e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5761071b6109b7565b602435907fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c090610749610dd2565b91836000528060205260406000205473ffffffffffffffffffffffffffffffffffffffff811692831561090e5773ffffffffffffffffffffffffffffffffffffffff16938385146108e05761079f818585610f15565b156108945750836108035774010000000000000000000000000000000000000000166107ef575b505b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b8360005260205280604060002055836107c6565b90740100000000000000000000000000000000000000008217809203610880575b5050826000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c26020526040600020827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556107c8565b846000526020526040600020558380610824565b8373ffffffffffffffffffffffffffffffffffffffff87927fc7563a18000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b837fb7fdc0100000000000000000000000000000000000000000000000000000000060005260045260246000fd5b857fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b3461013e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5760206109996004357fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0610a6f565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361013e57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361013e57565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc606091011261013e5760043573ffffffffffffffffffffffffffffffffffffffff8116810361013e579060243573ffffffffffffffffffffffffffffffffffffffff8116810361013e579060443590565b816000528060205260406000205473ffffffffffffffffffffffffffffffffffffffff811615610ae557740100000000000000000000000000000000000000001615610ade576002916000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020541690565b5050600090565b827fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b909273ffffffffffffffffffffffffffffffffffffffff16928315610d3857846000528160205260406000205473ffffffffffffffffffffffffffffffffffffffff8116938415610d0a5773ffffffffffffffffffffffffffffffffffffffff8116809503610cd85782610b879185610f15565b15610c1d575b5050836000528060205282604060002055828203610bce575b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b600101816000528060205260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81540190558260005260205260406000206001815401905538610ba6565b7401000000000000000000000000000000000000000016158015610c92575b610c465780610b8d565b8273ffffffffffffffffffffffffffffffffffffffff86927fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50846000526002820160205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff82161415610c3c565b86857f14dbb5360000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b867fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7f86c870670000000000000000000000000000000000000000000000000000000060005260046000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610da357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610f06573233148015610f0b575b610f06577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115610e5d575b50610e5a57503390565b90565b60649150602090604051928380927f019a20280000000000000000000000000000000000000000000000000000000082528660048301523360248301523060448301525afa908115610efa57600091610eb8575b5038610e50565b6020813d602011610ef2575b81610ed160209383610d62565b81010312610eee5751908115158203610eeb575038610eb1565b80fd5b5080fd5b3d9150610ec4565b6040513d6000823e3d90fd5b503390565b5060183610610e19565b73ffffffffffffffffffffffffffffffffffffffff8083169084161492918315610f40575b50505090565b600392935073ffffffffffffffffffffffffffffffffffffffff166000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260ff60406000205416388080610f3a565b9173ffffffffffffffffffffffffffffffffffffffff809195929495169381604051947f150b7a02000000000000000000000000000000000000000000000000000000008652166004850152166024830152836044830152608060648301528181519182608483015260005b83811061114f57505060a4817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8560008560209886010152011681010301816000865af1908115610efa576000916110d4575b507fffffffff000000000000000000000000000000000000000000000000000000007f150b7a02000000000000000000000000000000000000000000000000000000009116036110a4575050565b7fc215a7a10000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b6020813d602011611147575b816110ed60209383610d62565b81010312610eee5751907fffffffff0000000000000000000000000000000000000000000000000000000082168203610eeb57507fffffffff00000000000000000000000000000000000000000000000000000000611056565b3d91506110e0565b602082820181015160a487840101528593500161100156fea2646970667358221220ef89b7767e8654fbda818928071c8f4e88ba3a7ef6c58baf9614faeff94cb83264736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c8063081812fc1461093c578063095ea7b3146106e457806323b872dd146106a357806342842e0e1461063a5780636352211e1461058557806370a08231146104bb578063a22cb46514610390578063b1c7ee0214610256578063b88d4fde146101435763e985e9c51461008a57600080fd5b3461013e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e576100c16109b7565b73ffffffffffffffffffffffffffffffffffffffff6100de6109da565b91166000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c360205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b600080fd5b3461013e5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5761017a6109b7565b6101826109da565b6044356064359167ffffffffffffffff831161013e573660238401121561013e5782600401359367ffffffffffffffff851161013e57366024868601011161013e577fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c06101fa8484846101f3610dd2565b8095610b13565b823b61020257005b6000602061025497806024837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601996102436040519b8c610d62565b828b5201838a013787010152610f95565b005b3461013e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5761028d610dd2565b73ffffffffffffffffffffffffffffffffffffffff807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610354169116908103610363577f80ac58cd000000000000000000000000000000000000000000000000000000006000527fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527f8ed2355fc3f859d445b81332ba1875c675be71b9fe1bab0a25be6436696b0ec780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055005b7f673a31a10000000000000000000000000000000000000000000000000000000060005260045260246000fd5b3461013e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e576103c76109b7565b6024359081151580920361013e5773ffffffffffffffffffffffffffffffffffffffff806103f3610dd2565b1691169181831461048d5760207f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191836000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c38252604060002085600052825260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a3005b507fe4215c6a0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b3461013e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e576104f26109b7565b73ffffffffffffffffffffffffffffffffffffffff81161561055b5773ffffffffffffffffffffffffffffffffffffffff166000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526020604060002054604051908152f35b7faefbce4e0000000000000000000000000000000000000000000000000000000060005260046000fd5b3461013e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e576004357fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c08160005260205273ffffffffffffffffffffffffffffffffffffffff60406000205416801561060c57602090604051908152f35b507fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b3461013e57610648366109fd565b7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c09161067f828286610678610dd2565b8097610b13565b803b61068757005b610254936040519361069a602086610d62565b60008552610f95565b3461013e576102546106b4366109fd565b917fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c06106de610dd2565b90610b13565b3461013e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5761071b6109b7565b602435907fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c090610749610dd2565b91836000528060205260406000205473ffffffffffffffffffffffffffffffffffffffff811692831561090e5773ffffffffffffffffffffffffffffffffffffffff16938385146108e05761079f818585610f15565b156108945750836108035774010000000000000000000000000000000000000000166107ef575b505b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b8360005260205280604060002055836107c6565b90740100000000000000000000000000000000000000008217809203610880575b5050826000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c26020526040600020827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556107c8565b846000526020526040600020558380610824565b8373ffffffffffffffffffffffffffffffffffffffff87927fc7563a18000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b837fb7fdc0100000000000000000000000000000000000000000000000000000000060005260045260246000fd5b857fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b3461013e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5760206109996004357fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0610a6f565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361013e57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361013e57565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc606091011261013e5760043573ffffffffffffffffffffffffffffffffffffffff8116810361013e579060243573ffffffffffffffffffffffffffffffffffffffff8116810361013e579060443590565b816000528060205260406000205473ffffffffffffffffffffffffffffffffffffffff811615610ae557740100000000000000000000000000000000000000001615610ade576002916000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020541690565b5050600090565b827fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b909273ffffffffffffffffffffffffffffffffffffffff16928315610d3857846000528160205260406000205473ffffffffffffffffffffffffffffffffffffffff8116938415610d0a5773ffffffffffffffffffffffffffffffffffffffff8116809503610cd85782610b879185610f15565b15610c1d575b5050836000528060205282604060002055828203610bce575b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b600101816000528060205260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81540190558260005260205260406000206001815401905538610ba6565b7401000000000000000000000000000000000000000016158015610c92575b610c465780610b8d565b8273ffffffffffffffffffffffffffffffffffffffff86927fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50846000526002820160205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff82161415610c3c565b86857f14dbb5360000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b867fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7f86c870670000000000000000000000000000000000000000000000000000000060005260046000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610da357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610f06573233148015610f0b575b610f06577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115610e5d575b50610e5a57503390565b90565b60649150602090604051928380927f019a20280000000000000000000000000000000000000000000000000000000082528660048301523360248301523060448301525afa908115610efa57600091610eb8575b5038610e50565b6020813d602011610ef2575b81610ed160209383610d62565b81010312610eee5751908115158203610eeb575038610eb1565b80fd5b5080fd5b3d9150610ec4565b6040513d6000823e3d90fd5b503390565b5060183610610e19565b73ffffffffffffffffffffffffffffffffffffffff8083169084161492918315610f40575b50505090565b600392935073ffffffffffffffffffffffffffffffffffffffff166000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260ff60406000205416388080610f3a565b9173ffffffffffffffffffffffffffffffffffffffff809195929495169381604051947f150b7a02000000000000000000000000000000000000000000000000000000008652166004850152166024830152836044830152608060648301528181519182608483015260005b83811061114f57505060a4817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8560008560209886010152011681010301816000865af1908115610efa576000916110d4575b507fffffffff000000000000000000000000000000000000000000000000000000007f150b7a02000000000000000000000000000000000000000000000000000000009116036110a4575050565b7fc215a7a10000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b6020813d602011611147575b816110ed60209383610d62565b81010312610eee5751907fffffffff0000000000000000000000000000000000000000000000000000000082168203610eeb57507fffffffff00000000000000000000000000000000000000000000000000000000611056565b3d91506110e0565b602082820181015160a487840101528593500161100156fea2646970667358221220ef89b7767e8654fbda818928071c8f4e88ba3a7ef6c58baf9614faeff94cb83264736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
