ocean-subgraph/abis/ERC721Template.json

1616 lines
106 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "ERC721Template",
"sourceName": "contracts/templates/ERC721Template.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "signer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "AddedManager",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "signer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "AddedTo725StoreList",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "signer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "AddedToCreateERC20List",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "signer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "AddedToMetadataList",
"type": "event"
},
{
"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": "signer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "CleanedPermissions",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "contractAddress",
"type": "address"
}
],
"name": "ContractCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "key",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "bytes",
"name": "value",
"type": "bytes"
}
],
"name": "DataChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "_operation",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "_value",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "Executed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "createdBy",
"type": "address"
},
{
"indexed": false,
"internalType": "uint8",
"name": "state",
"type": "uint8"
},
{
"indexed": false,
"internalType": "string",
"name": "decryptorUrl",
"type": "string"
},
{
"indexed": false,
"internalType": "bytes",
"name": "flags",
"type": "bytes"
},
{
"indexed": false,
"internalType": "bytes",
"name": "data",
"type": "bytes"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "metaDataHash",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "MetadataCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "updatedBy",
"type": "address"
},
{
"indexed": false,
"internalType": "uint8",
"name": "state",
"type": "uint8"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "MetadataState",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "updatedBy",
"type": "address"
},
{
"indexed": false,
"internalType": "uint8",
"name": "state",
"type": "uint8"
},
{
"indexed": false,
"internalType": "string",
"name": "decryptorUrl",
"type": "string"
},
{
"indexed": false,
"internalType": "bytes",
"name": "flags",
"type": "bytes"
},
{
"indexed": false,
"internalType": "bytes",
"name": "data",
"type": "bytes"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "metaDataHash",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "MetadataUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "metaDataHash",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "MetadataValidated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "signer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "RemovedFrom725StoreList",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "signer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "RemovedFromCreateERC20List",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "signer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "RemovedFromMetadataList",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "signer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "RemovedManager",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newTokenAddress",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "templateAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "string",
"name": "name",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"indexed": false,
"internalType": "uint256",
"name": "cap",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "creator",
"type": "address"
}
],
"name": "TokenCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "updatedBy",
"type": "address"
},
{
"indexed": false,
"internalType": "string",
"name": "tokenURI",
"type": "string"
},
{
"indexed": false,
"internalType": "uint256",
"name": "tokenID",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "TokenURIUpdate",
"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"
},
{
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [
{
"internalType": "address",
"name": "_managerAddress",
"type": "address"
}
],
"name": "addManager",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_allowedAddress",
"type": "address"
}
],
"name": "addTo725StoreList",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_allowedAddress",
"type": "address"
}
],
"name": "addToCreateERC20List",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_allowedAddress",
"type": "address"
}
],
"name": "addToMetadataList",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "auth",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "cleanPermissions",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_templateIndex",
"type": "uint256"
},
{
"internalType": "string[]",
"name": "strings",
"type": "string[]"
},
{
"internalType": "address[]",
"name": "addresses",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "uints",
"type": "uint256[]"
},
{
"internalType": "bytes[]",
"name": "bytess",
"type": "bytes[]"
}
],
"name": "createERC20",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_operation",
"type": "uint256"
},
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "executeCall",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_key",
"type": "bytes32"
}
],
"name": "getData",
"outputs": [
{
"internalType": "bytes",
"name": "_value",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getId",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "getMetaData",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
},
{
"internalType": "string",
"name": "",
"type": "string"
},
{
"internalType": "uint8",
"name": "",
"type": "uint8"
},
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getPermissions",
"outputs": [
{
"components": [
{
"internalType": "bool",
"name": "manager",
"type": "bool"
},
{
"internalType": "bool",
"name": "deployERC20",
"type": "bool"
},
{
"internalType": "bool",
"name": "updateMetadata",
"type": "bool"
},
{
"internalType": "bool",
"name": "store",
"type": "bool"
}
],
"internalType": "struct ERC721RolesAddress.Roles",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTokensList",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "hasMetaData",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "string",
"name": "name_",
"type": "string"
},
{
"internalType": "string",
"name": "symbol_",
"type": "string"
},
{
"internalType": "address",
"name": "tokenFactory",
"type": "address"
},
{
"internalType": "address",
"name": "additionalERC20Deployer",
"type": "address"
},
{
"internalType": "string",
"name": "tokenURI",
"type": "string"
}
],
"name": "initialize",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "datatoken",
"type": "address"
}
],
"name": "isDeployed",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "isERC20Deployer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isInitialized",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "metaDataDecryptorAddress",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "metaDataDecryptorUrl",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "metaDataState",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "ownerOf",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_allowedAddress",
"type": "address"
}
],
"name": "removeFrom725StoreList",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_allowedAddress",
"type": "address"
}
],
"name": "removeFromCreateERC20List",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_allowedAddress",
"type": "address"
}
],
"name": "removeFromMetadataList",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_managerAddress",
"type": "address"
}
],
"name": "removeManager",
"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": "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": "string",
"name": "_baseURI",
"type": "string"
}
],
"name": "setBaseURI",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_key",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "_value",
"type": "bytes"
}
],
"name": "setDataERC20",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "_metaDataState",
"type": "uint8"
},
{
"internalType": "string",
"name": "_metaDataDecryptorUrl",
"type": "string"
},
{
"internalType": "string",
"name": "_metaDataDecryptorAddress",
"type": "string"
},
{
"internalType": "bytes",
"name": "flags",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "_metaDataHash",
"type": "bytes32"
},
{
"components": [
{
"internalType": "address",
"name": "validatorAddress",
"type": "address"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"internalType": "struct ERC721Template.metaDataProof[]",
"name": "_metadataProofs",
"type": "tuple[]"
}
],
"name": "setMetaData",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint8",
"name": "metaDataState",
"type": "uint8"
},
{
"internalType": "string",
"name": "metaDataDecryptorUrl",
"type": "string"
},
{
"internalType": "string",
"name": "metaDataDecryptorAddress",
"type": "string"
},
{
"internalType": "bytes",
"name": "flags",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "metaDataHash",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "tokenURI",
"type": "string"
},
{
"components": [
{
"internalType": "address",
"name": "validatorAddress",
"type": "address"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"internalType": "struct ERC721Template.metaDataProof[]",
"name": "metadataProofs",
"type": "tuple[]"
}
],
"internalType": "struct ERC721Template.metaDataAndTokenURI",
"name": "_metaDataAndTokenURI",
"type": "tuple"
}
],
"name": "setMetaDataAndTokenURI",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "_metaDataState",
"type": "uint8"
}
],
"name": "setMetaDataState",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_key",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "_value",
"type": "bytes"
}
],
"name": "setNewData",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "tokenURI",
"type": "string"
}
],
"name": "setTokenURI",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "ssContract",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "tokenURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "withdrawETH",
"outputs": [],
"stateMutability": "payable",
"type": "function"
}
],
"bytecode": "0x60806040523480156200001157600080fd5b50604080518082018252600881526754656d706c61746560c01b60208083019182528351808501909452600e84526d15195b5c1b185d1954de5b589bdb60921b908401528151919291620000689160009162000136565b5080516200007e90600190602084019062000136565b50620000959150632260147f60e11b9050620000b2565b620000a7632bd57b7360e01b620000b2565b6001600c5562000219565b6001600160e01b03198082161415620001115760405162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015260640160405180910390fd5b6001600160e01b0319166000908152600a60205260409020805460ff19166001179055565b8280546200014490620001dc565b90600052602060002090601f016020900481019282620001685760008555620001b3565b82601f106200018357805160ff1916838001178555620001b3565b82800160010185558215620001b3579182015b82811115620001b357825182559160200191906001019062000196565b50620001c1929150620001c5565b5090565b5b80821115620001c15760008155600101620001c6565b600181811c90821680620001f157607f821691505b602082108114156200021357634e487b7160e01b600052602260045260246000fd5b50919050565b61463980620002296000396000f3fe6080604052600436106102685760003560e01c806354f6127f11610143578063a22cb465116100bb578063d2786ba411610077578063d2786ba414610858578063d8053ad31461087d578063e086e5ec1461089c578063e38d7cad146108a4578063e985e9c5146108c4578063fe1ec8801461090d57005b8063a22cb465146107ab578063ac18de43146107cb578063b0c41ead146107eb578063c55f81261461080b578063c87b56dd1461081e578063ccd7d4761461083e57005b806370a082311161010a57806370a08231146106bc57806370c166d7146106ea57806382cf129d1461070a57806390184b021461071f57806395d89b411461075857806396fb3eaf1461076d57005b806354f6127f1461061a57806355f804b31461063a5780635d1ca6311461065a5780636352211e1461067c57806367530a611461069c57005b80631aa3adf9116101e1578063431053ac1161019d578063431053ac14610563578063466bca0214610583578063467c97f5146105a55780634a63740a146105c55780634b2ee5e9146105e55780634f189cb21461060557005b80631aa3adf9146104ab57806323b872dd146104cb578063273e06b3146104eb5780632d06177a1461050b578063392e53cd1461052b57806342842e0e1461054357005b80630e57c7e8116102305780630e57c7e81461032e57806310c558bf1461034e578063160a79251461036e578063162094c41461044b57806319a18a851461046b57806319c186e51461048b57005b806301ffc9a71461026a57806306fdde031461029f578063081812fc146102c1578063095ea7b3146102f95780630e05662e14610319575b005b34801561027657600080fd5b5061028a6102853660046136c0565b61092d565b60405190151581526020015b60405180910390f35b3480156102ab57600080fd5b506102b461096d565b604051610296919061373c565b3480156102cd57600080fd5b506102e16102dc36600461374f565b6109ff565b6040516001600160a01b039091168152602001610296565b34801561030557600080fd5b5061026861031436600461377d565b610a99565b34801561032557600080fd5b506102b4610baf565b34801561033a57600080fd5b506102686103493660046137f1565b610c3d565b34801561035a57600080fd5b5061026861036936600461383c565b610cb2565b34801561037a57600080fd5b5061041061038936600461383c565b604080516080810182526000808252602082018190529181018290526060810191909152506001600160a01b03166000908152600860209081526040918290208251608081018452905460ff808216151583526101008204811615159383019390935262010000810483161515938201939093526301000000909204161515606082015290565b604051610296919081511515815260208083015115159082015260408083015115159082015260609182015115159181019190915260800190565b34801561045757600080fd5b5061026861046636600461390e565b610d85565b34801561047757600080fd5b50610268610486366004613954565b610e13565b34801561049757600080fd5b506102686104a636600461383c565b610f47565b3480156104b757600080fd5b506102686104c6366004613aa0565b611010565b3480156104d757600080fd5b506102686104e6366004613ba7565b611065565b3480156104f757600080fd5b5061026861050636600461383c565b611137565b34801561051757600080fd5b5061026861052636600461383c565b61126d565b34801561053757600080fd5b50600f5460ff1661028a565b34801561054f57600080fd5b5061026861055e366004613ba7565b6112b0565b34801561056f57600080fd5b5061026861057e36600461383c565b611356565b34801561058f57600080fd5b5061059861148b565b6040516102969190613be8565b3480156105b157600080fd5b506102686105c0366004613c35565b6114ec565b3480156105d157600080fd5b506102686105e036600461383c565b611577565b3480156105f157600080fd5b506014546102e1906001600160a01b031681565b34801561061157600080fd5b5061026861163c565b34801561062657600080fd5b506102b461063536600461374f565b611680565b34801561064657600080fd5b50610268610655366004613c50565b611722565b34801561066657600080fd5b5060015b60405160ff9091168152602001610296565b34801561068857600080fd5b506102e161069736600461374f565b611773565b3480156106a857600080fd5b506102686106b73660046137f1565b6117ea565b3480156106c857600080fd5b506106dc6106d736600461383c565b61185a565b604051908152602001610296565b3480156106f657600080fd5b5061028a610705366004613c84565b6118e1565b34801561071657600080fd5b506102b46119fe565b34801561072b57600080fd5b5061028a61073a36600461383c565b6001600160a01b031660009081526015602052604090205460ff1690565b34801561076457600080fd5b506102b4611a0b565b34801561077957600080fd5b5061028a61078836600461383c565b6001600160a01b0316600090815260086020526040902054610100900460ff1690565b3480156107b757600080fd5b506102686107c6366004613d52565b611a1a565b3480156107d757600080fd5b506102686107e636600461383c565b611ad8565b3480156107f757600080fd5b506102e161080636600461374f565b611b1b565b610268610819366004613d90565b611b45565b34801561082a57600080fd5b506102b461083936600461374f565b611b8d565b34801561084a57600080fd5b5060125461066a9060ff1681565b34801561086457600080fd5b5061086d611ceb565b6040516102969493929190613df9565b34801561088957600080fd5b50600f5461028a90610100900460ff1681565b610268611e3b565b3480156108b057600080fd5b506102e16108bf366004613e7e565b611e7d565b3480156108d057600080fd5b5061028a6108df366004613f4d565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b34801561091957600080fd5b5061026861092836600461383c565b61204d565b60006301ffc9a760e01b6001600160e01b03198316148061096757506001600160e01b031982166000908152600a602052604090205460ff165b92915050565b6060600d805461097c90613f7b565b80601f01602080910402602001604051908101604052809291908181526020018280546109a890613f7b565b80156109f55780601f106109ca576101008083540402835291602001916109f5565b820191906000526020600020905b8154815290600101906020018083116109d857829003601f168201915b5050505050905090565b6000818152600360205260408120546001600160a01b0316610a7d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600560205260409020546001600160a01b031690565b6000610aa482611773565b9050806001600160a01b0316836001600160a01b03161415610b125760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610a74565b336001600160a01b0382161480610b2e5750610b2e81336108df565b610ba05760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610a74565b610baa838361217d565b505050565b60118054610bbc90613f7b565b80601f0160208091040260200160405190810160405280929190818152602001828054610be890613f7b565b8015610c355780601f10610c0a57610100808354040283529160200191610c35565b820191906000526020600020905b815481529060010190602001808311610c1857829003601f168201915b505050505081565b3360009081526015602052604090205460ff16610ca75760405162461bcd60e51b815260206004820152602260248201527f45524337323154656d706c6174653a204e4f5420455243323020436f6e74726160448201526118dd60f21b6064820152608401610a74565b610baa8383836121eb565b3360009081526008602052604090205460ff161515600114610ce65760405162461bcd60e51b8152600401610a7490613fb6565b6001600160a01b038116600081815260086020526040808220805462ff00001916620100001781556009805460018101825593526000805160206145e483398151915290920180546001600160a01b0319168417905551909133917fc2a42571a74ce1442c8c44d375ba9442e7d55d94b37afeace261c83c62128fa490610d799042904390918252602082015260400190565b60405180910390a35050565b610d8e82611773565b6001600160a01b0316336001600160a01b031614610dbe5760405162461bcd60e51b8152600401610a7490613fed565b610dc88282612244565b336001600160a01b03167f6de6cd3982065cbd31e789e3109106f4d76d1c8a46e85262045cf947fb3fd4ed82844243604051610e079493929190614024565b60405180910390a25050565b3360009081526008602052604090205462010000900460ff16610e485760405162461bcd60e51b8152600401610a7490614053565b610ef5610e586020830183613c35565b610e656020840184614094565b610e726040860186614094565b610e7f6060880188614094565b610e8c60808a018a614094565b60a08b0135610e9f6101008d018d6140da565b808060200260200160405190810160405280939291908181526020016000905b82821015610eeb57610edc60808302860136819003810190614123565b81526020019060010190610ebf565b50505050506122de565b610f4460c0820135610f0a60e0840184614094565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d8592505050565b50565b3360009081526008602052604090205460ff161515600114610f7b5760405162461bcd60e51b8152600401610a7490613fb6565b6001600160a01b038116600081815260086020526040808220805463ff000000191663010000001781556009805460018101825593526000805160206145e483398151915290920180546001600160a01b0319168417905551909133917feb09276310ed110a7e565d64966d0ff68a47112d2dd5eeb6cbd7451836ce35ee90610d799042904390918252602082015260400190565b3360009081526008602052604090205462010000900460ff166110455760405162461bcd60e51b8152600401610a7490614053565b6110588b8b8b8b8b8b8b8b8b8b8b6122de565b5050505050505050505050565b806001146110855760405162461bcd60e51b8152600401610a749061413f565b6110ef6110ea60138054806020026020016040519081016040528092919081815260200182805480156110e157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110c3575b50505050505190565b6126e7565b6110f7612778565b611102838383612829565b61110b8261286a565b506001600160a01b03166000908152600860205260409020805463ffffff001916630101010017905550565b3360009081526008602052604090205460ff161515600114806111885750336001600160a01b0382161480156111885750336000908152600860205260409020546301000000900460ff1615156001145b156111f0576001600160a01b03811660008181526008602052604090819020805463ff000000191681559051909133917fc929b18b08ffea86a1f95e29384dbe8968f2fcbd70cfd735df3aba1cc548cbf390610d799042904390918252602082015260400190565b60405162461bcd60e51b815260206004820152604660248201527f455243373231526f6c6573416464726573733a204e6f7420656e6f756768207060448201527f65726d697373696f6e7320746f2072656d6f76652066726f6d2037323553746f6064820152651c99531a5cdd60d21b608482015260a401610a74565b6112776001611773565b6001600160a01b0316336001600160a01b0316146112a75760405162461bcd60e51b8152600401610a7490613fed565b610f448161286a565b806001146112d05760405162461bcd60e51b8152600401610a749061413f565b6113336110ea60138054806020026020016040519081016040528092919081815260200182805480156110e1576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116110c35750505050505190565b61133b612778565b611102838383604051806020016040528060008152506128fb565b3360009081526008602052604090205460ff161515600114806113a65750336001600160a01b0382161480156113a657503360009081526008602052604090205462010000900460ff1615156001145b1561140d576001600160a01b03811660008181526008602052604090819020805462ff0000191681559051909133917f9b41e1311fa819e825bc77fa2568492112e15ea92d173f3f8ee1c8ec3c1c562b90610d799042904390918252602082015260400190565b60405162461bcd60e51b815260206004820152604760248201527f455243373231526f6c6573416464726573733a204e6f7420656e6f756768207060448201527f65726d697373696f6e7320746f2072656d6f76652066726f6d206d65746164616064820152661d18481b1a5cdd60ca1b608482015260a401610a74565b606060138054806020026020016040519081016040528092919081815260200182805480156109f557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114c5575050505050905090565b3360009081526008602052604090205462010000900460ff166115215760405162461bcd60e51b8152600401610a7490614053565b6012805460ff191660ff831690811790915560408051918252426020830152439082015233907fa8336411cc72db0e5bdc4dff989eeb35879bafaceffb59b54b37645c3395adb99060600160405180910390a250565b3360009081526008602052604090205460ff1615156001146115ab5760405162461bcd60e51b8152600401610a7490613fb6565b6001600160a01b038116600081815260086020526040808220805461ff0019166101001781556009805460018101825593526000805160206145e483398151915290920180546001600160a01b0319168417905551909133917f0572d56343be407a66810f01449212e8545e14ff5049c479d34be944cdfd0d4f90610d799042904390918252602082015260400190565b6116466001611773565b6001600160a01b0316336001600160a01b0316146116765760405162461bcd60e51b8152600401610a7490613fed565b61167e612778565b565b6000818152600b6020526040902080546060919061169d90613f7b565b80601f01602080910402602001604051908101604052809291908181526020018280546116c990613f7b565b80156117165780601f106116eb57610100808354040283529160200191611716565b820191906000526020600020905b8154815290600101906020018083116116f957829003601f168201915b50505050509050919050565b61172c6001611773565b6001600160a01b0316336001600160a01b03161461175c5760405162461bcd60e51b8152600401610a7490613fed565b805161176f906002906020840190613583565b5050565b6000818152600360205260408120546001600160a01b0316806109675760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610a74565b336000908152600860205260409020546301000000900460ff16610ca75760405162461bcd60e51b815260206004820152602160248201527f45524337323154656d706c6174653a204e4f542053544f5245205550444154456044820152602960f91b6064820152608401610a74565b60006001600160a01b0382166118c55760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610a74565b506001600160a01b031660009081526004602052604090205490565b600f5460009060ff16156119525760405162461bcd60e51b815260206004820152603260248201527f45524337323154656d706c6174653a20746f6b656e20696e7374616e636520616044820152711b1c9958591e481a5b9a5d1a585b1a5e995960721b6064820152608401610a74565b60006119cc8a8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8e018190048102820181019092528c815292508c91508b90819084018382808284376000920191909152508b92508991506129339050565b90508080156119e357506001600160a01b03841615155b156119f1576119f1846115ab565b9998505050505050505050565b60108054610bbc90613f7b565b6060600e805461097c90613f7b565b6001600160a01b038216331415611a735760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610a74565b3360008181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101610d79565b611ae26001611773565b6001600160a01b0316336001600160a01b031614611b125760405162461bcd60e51b8152600401610a7490613fed565b610f4481612a73565b60098181548110611b2b57600080fd5b6000918252602090912001546001600160a01b0316905081565b3360009081526008602052604090205460ff161515600114611b795760405162461bcd60e51b8152600401610a7490613fb6565b611b868585858585612ad3565b5050505050565b6000818152600360205260409020546060906001600160a01b0316611c0c5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610a74565b60008281526007602052604081208054611c2590613f7b565b80601f0160208091040260200160405190810160405280929190818152602001828054611c5190613f7b565b8015611c9e5780601f10611c7357610100808354040283529160200191611c9e565b820191906000526020600020905b815481529060010190602001808311611c8157829003601f168201915b505050505090506000611caf612cfc565b825190915015611ce4578082604051602001611ccc92919061418b565b60405160208183030381529060405292505050919050565b5092915050565b60608060008060106011601260009054906101000a900460ff16600f60019054906101000a900460ff16838054611d2190613f7b565b80601f0160208091040260200160405190810160405280929190818152602001828054611d4d90613f7b565b8015611d9a5780601f10611d6f57610100808354040283529160200191611d9a565b820191906000526020600020905b815481529060010190602001808311611d7d57829003601f168201915b50505050509350828054611dad90613f7b565b80601f0160208091040260200160405190810160405280929190818152602001828054611dd990613f7b565b8015611e265780601f10611dfb57610100808354040283529160200191611e26565b820191906000526020600020905b815481529060010190602001808311611e0957829003601f168201915b50505050509250935093509350935090919293565b611e456001611773565b6001600160a01b03166108fc479081150290604051600060405180830381858888f19350505050158015610f44573d6000803e3d6000fd5b60006002600c541415611ed25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a74565b6002600c5533600090815260086020526040902054610100900460ff16611f4a5760405162461bcd60e51b815260206004820152602660248201527f45524337323154656d706c6174653a204e4f542045524332304445504c4f5945604482015265525f524f4c4560d01b6064820152608401610a74565b601254604051630557fcfb60e41b815260009161010090046001600160a01b03169063557fcfb090611f90908e908e908e908e908e908e908e908e908e90600401614304565b6020604051808303816000875af1158015611faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd391906143b5565b6001600160a01b0381166000818152601560205260408120805460ff191660019081179091556013805491820181559091527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0900180546001600160a01b03191690911790559150506001600c559998505050505050505050565b3360009081526008602052604090205460ff1615156001148061209d5750336001600160a01b03821614801561209d57503360009081526008602052604090205460ff6101009091041615156001145b15612103576001600160a01b03811660008181526008602052604090819020805461ff00191681559051909133917f59bd33f4c27cc16a2d74450e1fa43d7896020be9aecea4bee009db9294de899790610d799042904390918252602082015260400190565b60405162461bcd60e51b815260206004820152604360248201527f455243373231526f6c6573416464726573733a204e6f7420656e6f756768207060448201527f65726d697373696f6e7320746f2072656d6f76652066726f6d2045524332304c6064820152621a5cdd60ea1b608482015260a401610a74565b600081815260056020526040902080546001600160a01b0319166001600160a01b03841690811790915581906121b282611773565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000838152600b60205260409020612204908383613607565b50827fece574603820d07bc9b91f2a932baadf4628aabcb8afba49776529c14a6104b283836040516122379291906143d2565b60405180910390a2505050565b6000828152600360205260409020546001600160a01b03166122bf5760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608401610a74565b60008281526007602090815260409091208251610baa92840190613583565b6012805460ff191660ff8d161790556122f960108b8b613607565b5061230660118989613607565b50600f54610100900460ff1661237d57336001600160a01b03167f5463569dcc320958360074a9ab27e809e8a6942c394fb151d139b5f7b4ecb1bd8c8c8c8a8a8a8a8a42436040516123619a999897969594939291906143e6565b60405180910390a2600f805461ff0019166101001790556123cf565b60125460405133917fe5c4cf86b1815151e6f453e1e133d4454ae3b0b07145db39f2e0178685deac84916123c69160ff16908e908e908c908c908c908c908c90429043906143e6565b60405180910390a25b6032815111156124135760405162461bcd60e51b815260206004820152600f60248201526e546f6f204d616e792050726f6f667360881b6044820152606401610a74565b60408051808201909152601c81527f19457468657265756d205369676e6564204d6573736167653a0a333200000000602082015260005b82518110156126d85760006001600160a01b03168382815181106124705761247061444e565b6020026020010151600001516001600160a01b0316146125f2576000828560405160200161249f929190614464565b60405160208183030381529060405280519060200120905060006001828685815181106124ce576124ce61444e565b6020026020010151602001518786815181106124ec576124ec61444e565b60200260200101516040015188878151811061250a5761250a61444e565b6020026020010151606001516040516000815260200160405260405161254c949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa15801561256e573d6000803e3d6000fd5b50505060206040510351905084838151811061258c5761258c61444e565b6020026020010151600001516001600160a01b0316816001600160a01b0316146125ef5760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b210383937b7b31039b4b3b732b960611b6044820152606401610a74565b50505b8281815181106126045761260461444e565b6020026020010151600001516001600160a01b03167f2819d8badf5cff2c9220b8ee99dacc14d67058e343d7f0c2c444d198507fe9418585848151811061264d5761264d61444e565b60200260200101516020015186858151811061266b5761266b61444e565b6020026020010151604001518786815181106126895761268961444e565b6020026020010151606001516040516126be949392919093845260ff9290921660208401526040830152606082015260800190565b60405180910390a2806126d08161449c565b91505061244a565b50505050505050505050505050565b60005b8181101561176f57601381815481106127055761270561444e565b6000918252602082200154604080516382c03da560e01b815290516001600160a01b03909216926382c03da59260048084019382900301818387803b15801561274d57600080fd5b505af1158015612761573d6000803e3d6000fd5b5050505080806127709061449c565b9150506126ea565b60005b6009548110156127e0576000600860006009848154811061279e5761279e61444e565b60009182526020808320909101546001600160a01b031683528201929092526040019020805463ffffffff1916905550806127d88161449c565b91505061277b565b506127ed6009600061367b565b6040805142815243602082015233917f712bc71db81927a76b8bf1ea346247bb0ad58f18e4e5c1bd4aa0ec6573e02a2b910160405180910390a2565b6128333382612d0b565b61284f5760405162461bcd60e51b8152600401610a74906144b7565b610baa838383604051806020016040528060008152506128fb565b6001600160a01b038116600081815260086020526040808220805460ff1916600190811782556009805491820181559093526000805160206145e483398151915290920180546001600160a01b0319168417905551909133917faf8fc8b6726138c96881c895390a08e9d91a94c288f06281e7f9821c49c7155b90610d799042904390918252602082015260400190565b6129053383612d0b565b6129215760405162461bcd60e51b8152600401610a74906144b7565b61292d84848484612e02565b50505050565b60006001600160a01b0386166129a25760405162461bcd60e51b815260206004820152602e60248201527f45524337323154656d706c6174653a3a20496e76616c6964206d696e7465722c60448201526d20207a65726f206164647265737360901b6064820152608401610a74565b84516129b590600d906020880190613583565b5083516129c990600e906020870190613583565b5060128054610100600160a81b0319166101006001600160a01b03861602179055604080516020810191829052600090819052612a0891600291613583565b50600f805461ffff19166001908117909155612a25908790612e35565b612a2e8661286a565b6001600160a01b0386166000908152600860205260409020805463ffffff0019166301010100178155612a62600184612244565b5050600f5460ff1695945050505050565b6001600160a01b03811660008181526008602052604090819020805460ff191681559051909133917fb572db0e6da4924b771ed1712b980d48b5992b9a1c27aede55fbb3318c48996a90610d799042904390918252602082015260400190565b82846001600160a01b0316867f1f920dbda597d7bf95035464170fa58d0a4b57f13a1c315ace6793b9f63688b88585604051612b109291906143d2565b60405180910390a460006109c45a612b289190614508565b905085612b7857612b72858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250612e4f915050565b50612cf4565b6003861415612bc157612b728484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e6792505050565b6002861415612cb5576000612c1884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c13925060209150879050614508565b612f03565b90506000612c6785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250612c6291506020905088614508565b612f61565b90506000612c7687848461306e565b6040519091506001600160a01b038216907fcf78cf0d6f3d8371e1075c69c492ab4ec5d8cf23a1a239b6a51a1d00be7ca31290600090a2505050612cf4565b60405162461bcd60e51b815260206004820152601460248201527357726f6e67206f7065726174696f6e207479706560601b6044820152606401610a74565b505050505050565b60606002805461097c90613f7b565b6000818152600360205260408120546001600160a01b0316612d845760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610a74565b6000612d8f83611773565b9050806001600160a01b0316846001600160a01b03161480612dca5750836001600160a01b0316612dbf846109ff565b6001600160a01b0316145b80612dfa57506001600160a01b0380821660009081526006602090815260408083209388168352929052205460ff165b949350505050565b612e0d848484613170565b612e1984848484613310565b61292d5760405162461bcd60e51b8152600401610a749061451f565b61176f82826040518060200160405280600081525061340e565b6000806000845160208601878987f195945050505050565b600081516020830184f090506001600160a01b038116612ec95760405162461bcd60e51b815260206004820152601960248201527f436f756c64206e6f74206465706c6f7920636f6e7472616374000000000000006044820152606401610a74565b6040516001600160a01b038216907fcf78cf0d6f3d8371e1075c69c492ab4ec5d8cf23a1a239b6a51a1d00be7ca31290600090a292915050565b6000612f10826020614571565b83511015612f585760405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606401610a74565b50016020015190565b606081612f6f81601f614571565b1015612fae5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610a74565b612fb88284614571565b84511015612ffc5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610a74565b60608215801561301b5760405191506000825260208201604052613065565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561305457805183526020928301920161303c565b5050858452601f01601f1916604052505b50949350505050565b600080844710156130c15760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e63650000006044820152606401610a74565b825161310f5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f6044820152606401610a74565b8383516020850187f590506001600160a01b038116612dfa5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f79000000000000006044820152606401610a74565b826001600160a01b031661318382611773565b6001600160a01b0316146131eb5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610a74565b6001600160a01b03821661324d5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610a74565b61325860008261217d565b6001600160a01b0383166000908152600460205260408120805460019290613281908490614508565b90915550506001600160a01b03821660009081526004602052604081208054600192906132af908490614571565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60006001600160a01b0384163b1561340357604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290613354903390899088908890600401614589565b6020604051808303816000875af192505050801561338f575060408051601f3d908101601f1916820190925261338c918101906145c6565b60015b6133e9573d8080156133bd576040519150601f19603f3d011682016040523d82523d6000602084013e6133c2565b606091505b5080516133e15760405162461bcd60e51b8152600401610a749061451f565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612dfa565b506001949350505050565b6134188383613441565b6134256000848484613310565b610baa5760405162461bcd60e51b8152600401610a749061451f565b6001600160a01b0382166134975760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610a74565b6000818152600360205260409020546001600160a01b0316156134fc5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610a74565b6001600160a01b0382166000908152600460205260408120805460019290613525908490614571565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b82805461358f90613f7b565b90600052602060002090601f0160209004810192826135b157600085556135f7565b82601f106135ca57805160ff19168380011785556135f7565b828001600101855582156135f7579182015b828111156135f75782518255916020019190600101906135dc565b50613603929150613695565b5090565b82805461361390613f7b565b90600052602060002090601f01602090048101928261363557600085556135f7565b82601f1061364e5782800160ff198235161785556135f7565b828001600101855582156135f7579182015b828111156135f7578235825591602001919060010190613660565b5080546000825590600052602060002090810190610f4491905b5b808211156136035760008155600101613696565b6001600160e01b031981168114610f4457600080fd5b6000602082840312156136d257600080fd5b81356136dd816136aa565b9392505050565b60005b838110156136ff5781810151838201526020016136e7565b8381111561292d5750506000910152565b600081518084526137288160208601602086016136e4565b601f01601f19169290920160200192915050565b6020815260006136dd6020830184613710565b60006020828403121561376157600080fd5b5035919050565b6001600160a01b0381168114610f4457600080fd5b6000806040838503121561379057600080fd5b823561379b81613768565b946020939093013593505050565b60008083601f8401126137bb57600080fd5b5081356001600160401b038111156137d257600080fd5b6020830191508360208285010111156137ea57600080fd5b9250929050565b60008060006040848603121561380657600080fd5b8335925060208401356001600160401b0381111561382357600080fd5b61382f868287016137a9565b9497909650939450505050565b60006020828403121561384e57600080fd5b81356136dd81613768565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561389757613897613859565b604052919050565b600082601f8301126138b057600080fd5b81356001600160401b038111156138c9576138c9613859565b6138dc601f8201601f191660200161386f565b8181528460208386010111156138f157600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561392157600080fd5b8235915060208301356001600160401b0381111561393e57600080fd5b61394a8582860161389f565b9150509250929050565b60006020828403121561396657600080fd5b81356001600160401b0381111561397c57600080fd5b820161012081850312156136dd57600080fd5b803560ff811681146139a057600080fd5b919050565b6000608082840312156139b757600080fd5b604051608081018181106001600160401b03821117156139d9576139d9613859565b60405290508082356139ea81613768565b81526139f86020840161398f565b602082015260408301356040820152606083013560608201525092915050565b600082601f830112613a2957600080fd5b813560206001600160401b03821115613a4457613a44613859565b613a52818360051b0161386f565b82815260079290921b84018101918181019086841115613a7157600080fd5b8286015b84811015613a9557613a8788826139a5565b835291830191608001613a75565b509695505050505050565b600080600080600080600080600080600060e08c8e031215613ac157600080fd5b613aca8c61398f565b9a506001600160401b038060208e01351115613ae557600080fd5b613af58e60208f01358f016137a9565b909b50995060408d0135811015613b0b57600080fd5b613b1b8e60408f01358f016137a9565b909950975060608d0135811015613b3157600080fd5b613b418e60608f01358f016137a9565b909750955060808d0135811015613b5757600080fd5b613b678e60808f01358f016137a9565b909550935060a08d0135925060c08d0135811015613b8457600080fd5b50613b958d60c08e01358e01613a18565b90509295989b509295989b9093969950565b600080600060608486031215613bbc57600080fd5b8335613bc781613768565b92506020840135613bd781613768565b929592945050506040919091013590565b6020808252825182820181905260009190848201906040850190845b81811015613c295783516001600160a01b031683529284019291840191600101613c04565b50909695505050505050565b600060208284031215613c4757600080fd5b6136dd8261398f565b600060208284031215613c6257600080fd5b81356001600160401b03811115613c7857600080fd5b612dfa8482850161389f565b60008060008060008060008060c0898b031215613ca057600080fd5b8835613cab81613768565b975060208901356001600160401b0380821115613cc757600080fd5b613cd38c838d016137a9565b909950975060408b0135915080821115613cec57600080fd5b613cf88c838d016137a9565b909750955060608b01359150613d0d82613768565b90935060808a013590613d1f82613768565b90925060a08a01359080821115613d3557600080fd5b50613d428b828c0161389f565b9150509295985092959890939650565b60008060408385031215613d6557600080fd5b8235613d7081613768565b915060208301358015158114613d8557600080fd5b809150509250929050565b600080600080600060808688031215613da857600080fd5b853594506020860135613dba81613768565b93506040860135925060608601356001600160401b03811115613ddc57600080fd5b613de8888289016137a9565b969995985093965092949392505050565b608081526000613e0c6080830187613710565b8281036020840152613e1e8187613710565b60ff959095166040840152505090151560609091015292915050565b60008083601f840112613e4c57600080fd5b5081356001600160401b03811115613e6357600080fd5b6020830191508360208260051b85010111156137ea57600080fd5b600080600080600080600080600060a08a8c031215613e9c57600080fd5b8935985060208a01356001600160401b0380821115613eba57600080fd5b613ec68d838e01613e3a565b909a50985060408c0135915080821115613edf57600080fd5b613eeb8d838e01613e3a565b909850965060608c0135915080821115613f0457600080fd5b613f108d838e01613e3a565b909650945060808c0135915080821115613f2957600080fd5b50613f368c828d01613e3a565b915080935050809150509295985092959850929598565b60008060408385031215613f6057600080fd5b8235613f6b81613768565b91506020830135613d8581613768565b600181811c90821680613f8f57607f821691505b60208210811415613fb057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252601f908201527f455243373231526f6c6573416464726573733a204e4f54204d414e4147455200604082015260600190565b6020808252601c908201527f45524337323154656d706c6174653a206e6f74204e46544f776e657200000000604082015260600190565b6080815260006140376080830187613710565b6020830195909552506040810192909252606090910152919050565b60208082526021908201527f45524337323154656d706c6174653a204e4f54204d455441444154415f524f4c6040820152604560f81b606082015260800190565b6000808335601e198436030181126140ab57600080fd5b8301803591506001600160401b038211156140c557600080fd5b6020019150368190038213156137ea57600080fd5b6000808335601e198436030181126140f157600080fd5b8301803591506001600160401b0382111561410b57600080fd5b6020019150600781901b36038213156137ea57600080fd5b60006080828403121561413557600080fd5b6136dd83836139a5565b6020808252602c908201527f45524337323154656d706c6174653a2043616e6e6f74207472616e736665722060408201526b1d1a1a5cc81d1bdad95b925960a21b606082015260800190565b6000835161419d8184602088016136e4565b8351908301906141b18183602088016136e4565b01949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000808335601e198436030181126141fa57600080fd5b83016020810192503590506001600160401b0381111561421957600080fd5b8036038313156137ea57600080fd5b8183526000602080850194508260005b8581101561426657813561424b81613768565b6001600160a01b031687529582019590820190600101614238565b509495945050505050565b81835260006001600160fb1b0383111561428a57600080fd5b8260051b8083602087013760009401602001938452509192915050565b81835260006020808501808196508560051b810191508460005b878110156142f75782840389526142d882886141e3565b6142e38682846141ba565b9a87019a95505050908401906001016142c1565b5091979650505050505050565b89815260a0602082018190528101889052600060c060058a901b830181019083018b835b8c8110156143655785840360bf19018352614343828f6141e3565b61434e8682846141ba565b955050506020928301929190910190600101614328565b505050828103604084015261437b81898b614228565b90508281036060840152614390818789614271565b905082810360808401526143a58185876142a7565b9c9b505050505050505050505050565b6000602082840312156143c757600080fd5b81516136dd81613768565b602081526000612dfa6020830184866141ba565b60ff8b16815260e06020820152600061440360e083018b8d6141ba565b8281036040840152614416818a8c6141ba565b9050828103606084015261442b81888a6141ba565b6080840196909652505060a081019290925260c090910152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b600083516144768184602088016136e4565b9190910191825250602001919050565b634e487b7160e01b600052601160045260246000fd5b60006000198214156144b0576144b0614486565b5060010190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b60008282101561451a5761451a614486565b500390565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000821982111561458457614584614486565b500190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906145bc90830184613710565b9695505050505050565b6000602082840312156145d857600080fd5b81516136dd816136aa56fe6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7afa2646970667358221220167cbbb235398818db92650684bdee471f8af67a58d8161b297003a91da4cfa164736f6c634300080a0033",
"deployedBytecode": "0x6080604052600436106102685760003560e01c806354f6127f11610143578063a22cb465116100bb578063d2786ba411610077578063d2786ba414610858578063d8053ad31461087d578063e086e5ec1461089c578063e38d7cad146108a4578063e985e9c5146108c4578063fe1ec8801461090d57005b8063a22cb465146107ab578063ac18de43146107cb578063b0c41ead146107eb578063c55f81261461080b578063c87b56dd1461081e578063ccd7d4761461083e57005b806370a082311161010a57806370a08231146106bc57806370c166d7146106ea57806382cf129d1461070a57806390184b021461071f57806395d89b411461075857806396fb3eaf1461076d57005b806354f6127f1461061a57806355f804b31461063a5780635d1ca6311461065a5780636352211e1461067c57806367530a611461069c57005b80631aa3adf9116101e1578063431053ac1161019d578063431053ac14610563578063466bca0214610583578063467c97f5146105a55780634a63740a146105c55780634b2ee5e9146105e55780634f189cb21461060557005b80631aa3adf9146104ab57806323b872dd146104cb578063273e06b3146104eb5780632d06177a1461050b578063392e53cd1461052b57806342842e0e1461054357005b80630e57c7e8116102305780630e57c7e81461032e57806310c558bf1461034e578063160a79251461036e578063162094c41461044b57806319a18a851461046b57806319c186e51461048b57005b806301ffc9a71461026a57806306fdde031461029f578063081812fc146102c1578063095ea7b3146102f95780630e05662e14610319575b005b34801561027657600080fd5b5061028a6102853660046136c0565b61092d565b60405190151581526020015b60405180910390f35b3480156102ab57600080fd5b506102b461096d565b604051610296919061373c565b3480156102cd57600080fd5b506102e16102dc36600461374f565b6109ff565b6040516001600160a01b039091168152602001610296565b34801561030557600080fd5b5061026861031436600461377d565b610a99565b34801561032557600080fd5b506102b4610baf565b34801561033a57600080fd5b506102686103493660046137f1565b610c3d565b34801561035a57600080fd5b5061026861036936600461383c565b610cb2565b34801561037a57600080fd5b5061041061038936600461383c565b604080516080810182526000808252602082018190529181018290526060810191909152506001600160a01b03166000908152600860209081526040918290208251608081018452905460ff808216151583526101008204811615159383019390935262010000810483161515938201939093526301000000909204161515606082015290565b604051610296919081511515815260208083015115159082015260408083015115159082015260609182015115159181019190915260800190565b34801561045757600080fd5b5061026861046636600461390e565b610d85565b34801561047757600080fd5b50610268610486366004613954565b610e13565b34801561049757600080fd5b506102686104a636600461383c565b610f47565b3480156104b757600080fd5b506102686104c6366004613aa0565b611010565b3480156104d757600080fd5b506102686104e6366004613ba7565b611065565b3480156104f757600080fd5b5061026861050636600461383c565b611137565b34801561051757600080fd5b5061026861052636600461383c565b61126d565b34801561053757600080fd5b50600f5460ff1661028a565b34801561054f57600080fd5b5061026861055e366004613ba7565b6112b0565b34801561056f57600080fd5b5061026861057e36600461383c565b611356565b34801561058f57600080fd5b5061059861148b565b6040516102969190613be8565b3480156105b157600080fd5b506102686105c0366004613c35565b6114ec565b3480156105d157600080fd5b506102686105e036600461383c565b611577565b3480156105f157600080fd5b506014546102e1906001600160a01b031681565b34801561061157600080fd5b5061026861163c565b34801561062657600080fd5b506102b461063536600461374f565b611680565b34801561064657600080fd5b50610268610655366004613c50565b611722565b34801561066657600080fd5b5060015b60405160ff9091168152602001610296565b34801561068857600080fd5b506102e161069736600461374f565b611773565b3480156106a857600080fd5b506102686106b73660046137f1565b6117ea565b3480156106c857600080fd5b506106dc6106d736600461383c565b61185a565b604051908152602001610296565b3480156106f657600080fd5b5061028a610705366004613c84565b6118e1565b34801561071657600080fd5b506102b46119fe565b34801561072b57600080fd5b5061028a61073a36600461383c565b6001600160a01b031660009081526015602052604090205460ff1690565b34801561076457600080fd5b506102b4611a0b565b34801561077957600080fd5b5061028a61078836600461383c565b6001600160a01b0316600090815260086020526040902054610100900460ff1690565b3480156107b757600080fd5b506102686107c6366004613d52565b611a1a565b3480156107d757600080fd5b506102686107e636600461383c565b611ad8565b3480156107f757600080fd5b506102e161080636600461374f565b611b1b565b610268610819366004613d90565b611b45565b34801561082a57600080fd5b506102b461083936600461374f565b611b8d565b34801561084a57600080fd5b5060125461066a9060ff1681565b34801561086457600080fd5b5061086d611ceb565b6040516102969493929190613df9565b34801561088957600080fd5b50600f5461028a90610100900460ff1681565b610268611e3b565b3480156108b057600080fd5b506102e16108bf366004613e7e565b611e7d565b3480156108d057600080fd5b5061028a6108df366004613f4d565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b34801561091957600080fd5b5061026861092836600461383c565b61204d565b60006301ffc9a760e01b6001600160e01b03198316148061096757506001600160e01b031982166000908152600a602052604090205460ff165b92915050565b6060600d805461097c90613f7b565b80601f01602080910402602001604051908101604052809291908181526020018280546109a890613f7b565b80156109f55780601f106109ca576101008083540402835291602001916109f5565b820191906000526020600020905b8154815290600101906020018083116109d857829003601f168201915b5050505050905090565b6000818152600360205260408120546001600160a01b0316610a7d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600560205260409020546001600160a01b031690565b6000610aa482611773565b9050806001600160a01b0316836001600160a01b03161415610b125760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610a74565b336001600160a01b0382161480610b2e5750610b2e81336108df565b610ba05760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610a74565b610baa838361217d565b505050565b60118054610bbc90613f7b565b80601f0160208091040260200160405190810160405280929190818152602001828054610be890613f7b565b8015610c355780601f10610c0a57610100808354040283529160200191610c35565b820191906000526020600020905b815481529060010190602001808311610c1857829003601f168201915b505050505081565b3360009081526015602052604090205460ff16610ca75760405162461bcd60e51b815260206004820152602260248201527f45524337323154656d706c6174653a204e4f5420455243323020436f6e74726160448201526118dd60f21b6064820152608401610a74565b610baa8383836121eb565b3360009081526008602052604090205460ff161515600114610ce65760405162461bcd60e51b8152600401610a7490613fb6565b6001600160a01b038116600081815260086020526040808220805462ff00001916620100001781556009805460018101825593526000805160206145e483398151915290920180546001600160a01b0319168417905551909133917fc2a42571a74ce1442c8c44d375ba9442e7d55d94b37afeace261c83c62128fa490610d799042904390918252602082015260400190565b60405180910390a35050565b610d8e82611773565b6001600160a01b0316336001600160a01b031614610dbe5760405162461bcd60e51b8152600401610a7490613fed565b610dc88282612244565b336001600160a01b03167f6de6cd3982065cbd31e789e3109106f4d76d1c8a46e85262045cf947fb3fd4ed82844243604051610e079493929190614024565b60405180910390a25050565b3360009081526008602052604090205462010000900460ff16610e485760405162461bcd60e51b8152600401610a7490614053565b610ef5610e586020830183613c35565b610e656020840184614094565b610e726040860186614094565b610e7f6060880188614094565b610e8c60808a018a614094565b60a08b0135610e9f6101008d018d6140da565b808060200260200160405190810160405280939291908181526020016000905b82821015610eeb57610edc60808302860136819003810190614123565b81526020019060010190610ebf565b50505050506122de565b610f4460c0820135610f0a60e0840184614094565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d8592505050565b50565b3360009081526008602052604090205460ff161515600114610f7b5760405162461bcd60e51b8152600401610a7490613fb6565b6001600160a01b038116600081815260086020526040808220805463ff000000191663010000001781556009805460018101825593526000805160206145e483398151915290920180546001600160a01b0319168417905551909133917feb09276310ed110a7e565d64966d0ff68a47112d2dd5eeb6cbd7451836ce35ee90610d799042904390918252602082015260400190565b3360009081526008602052604090205462010000900460ff166110455760405162461bcd60e51b8152600401610a7490614053565b6110588b8b8b8b8b8b8b8b8b8b8b6122de565b5050505050505050505050565b806001146110855760405162461bcd60e51b8152600401610a749061413f565b6110ef6110ea60138054806020026020016040519081016040528092919081815260200182805480156110e157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110c3575b50505050505190565b6126e7565b6110f7612778565b611102838383612829565b61110b8261286a565b506001600160a01b03166000908152600860205260409020805463ffffff001916630101010017905550565b3360009081526008602052604090205460ff161515600114806111885750336001600160a01b0382161480156111885750336000908152600860205260409020546301000000900460ff1615156001145b156111f0576001600160a01b03811660008181526008602052604090819020805463ff000000191681559051909133917fc929b18b08ffea86a1f95e29384dbe8968f2fcbd70cfd735df3aba1cc548cbf390610d799042904390918252602082015260400190565b60405162461bcd60e51b815260206004820152604660248201527f455243373231526f6c6573416464726573733a204e6f7420656e6f756768207060448201527f65726d697373696f6e7320746f2072656d6f76652066726f6d2037323553746f6064820152651c99531a5cdd60d21b608482015260a401610a74565b6112776001611773565b6001600160a01b0316336001600160a01b0316146112a75760405162461bcd60e51b8152600401610a7490613fed565b610f448161286a565b806001146112d05760405162461bcd60e51b8152600401610a749061413f565b6113336110ea60138054806020026020016040519081016040528092919081815260200182805480156110e1576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116110c35750505050505190565b61133b612778565b611102838383604051806020016040528060008152506128fb565b3360009081526008602052604090205460ff161515600114806113a65750336001600160a01b0382161480156113a657503360009081526008602052604090205462010000900460ff1615156001145b1561140d576001600160a01b03811660008181526008602052604090819020805462ff0000191681559051909133917f9b41e1311fa819e825bc77fa2568492112e15ea92d173f3f8ee1c8ec3c1c562b90610d799042904390918252602082015260400190565b60405162461bcd60e51b815260206004820152604760248201527f455243373231526f6c6573416464726573733a204e6f7420656e6f756768207060448201527f65726d697373696f6e7320746f2072656d6f76652066726f6d206d65746164616064820152661d18481b1a5cdd60ca1b608482015260a401610a74565b606060138054806020026020016040519081016040528092919081815260200182805480156109f557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114c5575050505050905090565b3360009081526008602052604090205462010000900460ff166115215760405162461bcd60e51b8152600401610a7490614053565b6012805460ff191660ff831690811790915560408051918252426020830152439082015233907fa8336411cc72db0e5bdc4dff989eeb35879bafaceffb59b54b37645c3395adb99060600160405180910390a250565b3360009081526008602052604090205460ff1615156001146115ab5760405162461bcd60e51b8152600401610a7490613fb6565b6001600160a01b038116600081815260086020526040808220805461ff0019166101001781556009805460018101825593526000805160206145e483398151915290920180546001600160a01b0319168417905551909133917f0572d56343be407a66810f01449212e8545e14ff5049c479d34be944cdfd0d4f90610d799042904390918252602082015260400190565b6116466001611773565b6001600160a01b0316336001600160a01b0316146116765760405162461bcd60e51b8152600401610a7490613fed565b61167e612778565b565b6000818152600b6020526040902080546060919061169d90613f7b565b80601f01602080910402602001604051908101604052809291908181526020018280546116c990613f7b565b80156117165780601f106116eb57610100808354040283529160200191611716565b820191906000526020600020905b8154815290600101906020018083116116f957829003601f168201915b50505050509050919050565b61172c6001611773565b6001600160a01b0316336001600160a01b03161461175c5760405162461bcd60e51b8152600401610a7490613fed565b805161176f906002906020840190613583565b5050565b6000818152600360205260408120546001600160a01b0316806109675760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610a74565b336000908152600860205260409020546301000000900460ff16610ca75760405162461bcd60e51b815260206004820152602160248201527f45524337323154656d706c6174653a204e4f542053544f5245205550444154456044820152602960f91b6064820152608401610a74565b60006001600160a01b0382166118c55760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610a74565b506001600160a01b031660009081526004602052604090205490565b600f5460009060ff16156119525760405162461bcd60e51b815260206004820152603260248201527f45524337323154656d706c6174653a20746f6b656e20696e7374616e636520616044820152711b1c9958591e481a5b9a5d1a585b1a5e995960721b6064820152608401610a74565b60006119cc8a8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8e018190048102820181019092528c815292508c91508b90819084018382808284376000920191909152508b92508991506129339050565b90508080156119e357506001600160a01b03841615155b156119f1576119f1846115ab565b9998505050505050505050565b60108054610bbc90613f7b565b6060600e805461097c90613f7b565b6001600160a01b038216331415611a735760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610a74565b3360008181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101610d79565b611ae26001611773565b6001600160a01b0316336001600160a01b031614611b125760405162461bcd60e51b8152600401610a7490613fed565b610f4481612a73565b60098181548110611b2b57600080fd5b6000918252602090912001546001600160a01b0316905081565b3360009081526008602052604090205460ff161515600114611b795760405162461bcd60e51b8152600401610a7490613fb6565b611b868585858585612ad3565b5050505050565b6000818152600360205260409020546060906001600160a01b0316611c0c5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610a74565b60008281526007602052604081208054611c2590613f7b565b80601f0160208091040260200160405190810160405280929190818152602001828054611c5190613f7b565b8015611c9e5780601f10611c7357610100808354040283529160200191611c9e565b820191906000526020600020905b815481529060010190602001808311611c8157829003601f168201915b505050505090506000611caf612cfc565b825190915015611ce4578082604051602001611ccc92919061418b565b60405160208183030381529060405292505050919050565b5092915050565b60608060008060106011601260009054906101000a900460ff16600f60019054906101000a900460ff16838054611d2190613f7b565b80601f0160208091040260200160405190810160405280929190818152602001828054611d4d90613f7b565b8015611d9a5780601f10611d6f57610100808354040283529160200191611d9a565b820191906000526020600020905b815481529060010190602001808311611d7d57829003601f168201915b50505050509350828054611dad90613f7b565b80601f0160208091040260200160405190810160405280929190818152602001828054611dd990613f7b565b8015611e265780601f10611dfb57610100808354040283529160200191611e26565b820191906000526020600020905b815481529060010190602001808311611e0957829003601f168201915b50505050509250935093509350935090919293565b611e456001611773565b6001600160a01b03166108fc479081150290604051600060405180830381858888f19350505050158015610f44573d6000803e3d6000fd5b60006002600c541415611ed25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a74565b6002600c5533600090815260086020526040902054610100900460ff16611f4a5760405162461bcd60e51b815260206004820152602660248201527f45524337323154656d706c6174653a204e4f542045524332304445504c4f5945604482015265525f524f4c4560d01b6064820152608401610a74565b601254604051630557fcfb60e41b815260009161010090046001600160a01b03169063557fcfb090611f90908e908e908e908e908e908e908e908e908e90600401614304565b6020604051808303816000875af1158015611faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd391906143b5565b6001600160a01b0381166000818152601560205260408120805460ff191660019081179091556013805491820181559091527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0900180546001600160a01b03191690911790559150506001600c559998505050505050505050565b3360009081526008602052604090205460ff1615156001148061209d5750336001600160a01b03821614801561209d57503360009081526008602052604090205460ff6101009091041615156001145b15612103576001600160a01b03811660008181526008602052604090819020805461ff00191681559051909133917f59bd33f4c27cc16a2d74450e1fa43d7896020be9aecea4bee009db9294de899790610d799042904390918252602082015260400190565b60405162461bcd60e51b815260206004820152604360248201527f455243373231526f6c6573416464726573733a204e6f7420656e6f756768207060448201527f65726d697373696f6e7320746f2072656d6f76652066726f6d2045524332304c6064820152621a5cdd60ea1b608482015260a401610a74565b600081815260056020526040902080546001600160a01b0319166001600160a01b03841690811790915581906121b282611773565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000838152600b60205260409020612204908383613607565b50827fece574603820d07bc9b91f2a932baadf4628aabcb8afba49776529c14a6104b283836040516122379291906143d2565b60405180910390a2505050565b6000828152600360205260409020546001600160a01b03166122bf5760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608401610a74565b60008281526007602090815260409091208251610baa92840190613583565b6012805460ff191660ff8d161790556122f960108b8b613607565b5061230660118989613607565b50600f54610100900460ff1661237d57336001600160a01b03167f5463569dcc320958360074a9ab27e809e8a6942c394fb151d139b5f7b4ecb1bd8c8c8c8a8a8a8a8a42436040516123619a999897969594939291906143e6565b60405180910390a2600f805461ff0019166101001790556123cf565b60125460405133917fe5c4cf86b1815151e6f453e1e133d4454ae3b0b07145db39f2e0178685deac84916123c69160ff16908e908e908c908c908c908c908c90429043906143e6565b60405180910390a25b6032815111156124135760405162461bcd60e51b815260206004820152600f60248201526e546f6f204d616e792050726f6f667360881b6044820152606401610a74565b60408051808201909152601c81527f19457468657265756d205369676e6564204d6573736167653a0a333200000000602082015260005b82518110156126d85760006001600160a01b03168382815181106124705761247061444e565b6020026020010151600001516001600160a01b0316146125f2576000828560405160200161249f929190614464565b60405160208183030381529060405280519060200120905060006001828685815181106124ce576124ce61444e565b6020026020010151602001518786815181106124ec576124ec61444e565b60200260200101516040015188878151811061250a5761250a61444e565b6020026020010151606001516040516000815260200160405260405161254c949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa15801561256e573d6000803e3d6000fd5b50505060206040510351905084838151811061258c5761258c61444e565b6020026020010151600001516001600160a01b0316816001600160a01b0316146125ef5760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b210383937b7b31039b4b3b732b960611b6044820152606401610a74565b50505b8281815181106126045761260461444e565b6020026020010151600001516001600160a01b03167f2819d8badf5cff2c9220b8ee99dacc14d67058e343d7f0c2c444d198507fe9418585848151811061264d5761264d61444e565b60200260200101516020015186858151811061266b5761266b61444e565b6020026020010151604001518786815181106126895761268961444e565b6020026020010151606001516040516126be949392919093845260ff9290921660208401526040830152606082015260800190565b60405180910390a2806126d08161449c565b91505061244a565b50505050505050505050505050565b60005b8181101561176f57601381815481106127055761270561444e565b6000918252602082200154604080516382c03da560e01b815290516001600160a01b03909216926382c03da59260048084019382900301818387803b15801561274d57600080fd5b505af1158015612761573d6000803e3d6000fd5b5050505080806127709061449c565b9150506126ea565b60005b6009548110156127e0576000600860006009848154811061279e5761279e61444e565b60009182526020808320909101546001600160a01b031683528201929092526040019020805463ffffffff1916905550806127d88161449c565b91505061277b565b506127ed6009600061367b565b6040805142815243602082015233917f712bc71db81927a76b8bf1ea346247bb0ad58f18e4e5c1bd4aa0ec6573e02a2b910160405180910390a2565b6128333382612d0b565b61284f5760405162461bcd60e51b8152600401610a74906144b7565b610baa838383604051806020016040528060008152506128fb565b6001600160a01b038116600081815260086020526040808220805460ff1916600190811782556009805491820181559093526000805160206145e483398151915290920180546001600160a01b0319168417905551909133917faf8fc8b6726138c96881c895390a08e9d91a94c288f06281e7f9821c49c7155b90610d799042904390918252602082015260400190565b6129053383612d0b565b6129215760405162461bcd60e51b8152600401610a74906144b7565b61292d84848484612e02565b50505050565b60006001600160a01b0386166129a25760405162461bcd60e51b815260206004820152602e60248201527f45524337323154656d706c6174653a3a20496e76616c6964206d696e7465722c60448201526d20207a65726f206164647265737360901b6064820152608401610a74565b84516129b590600d906020880190613583565b5083516129c990600e906020870190613583565b5060128054610100600160a81b0319166101006001600160a01b03861602179055604080516020810191829052600090819052612a0891600291613583565b50600f805461ffff19166001908117909155612a25908790612e35565b612a2e8661286a565b6001600160a01b0386166000908152600860205260409020805463ffffff0019166301010100178155612a62600184612244565b5050600f5460ff1695945050505050565b6001600160a01b03811660008181526008602052604090819020805460ff191681559051909133917fb572db0e6da4924b771ed1712b980d48b5992b9a1c27aede55fbb3318c48996a90610d799042904390918252602082015260400190565b82846001600160a01b0316867f1f920dbda597d7bf95035464170fa58d0a4b57f13a1c315ace6793b9f63688b88585604051612b109291906143d2565b60405180910390a460006109c45a612b289190614508565b905085612b7857612b72858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250612e4f915050565b50612cf4565b6003861415612bc157612b728484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e6792505050565b6002861415612cb5576000612c1884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c13925060209150879050614508565b612f03565b90506000612c6785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250612c6291506020905088614508565b612f61565b90506000612c7687848461306e565b6040519091506001600160a01b038216907fcf78cf0d6f3d8371e1075c69c492ab4ec5d8cf23a1a239b6a51a1d00be7ca31290600090a2505050612cf4565b60405162461bcd60e51b815260206004820152601460248201527357726f6e67206f7065726174696f6e207479706560601b6044820152606401610a74565b505050505050565b60606002805461097c90613f7b565b6000818152600360205260408120546001600160a01b0316612d845760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610a74565b6000612d8f83611773565b9050806001600160a01b0316846001600160a01b03161480612dca5750836001600160a01b0316612dbf846109ff565b6001600160a01b0316145b80612dfa57506001600160a01b0380821660009081526006602090815260408083209388168352929052205460ff165b949350505050565b612e0d848484613170565b612e1984848484613310565b61292d5760405162461bcd60e51b8152600401610a749061451f565b61176f82826040518060200160405280600081525061340e565b6000806000845160208601878987f195945050505050565b600081516020830184f090506001600160a01b038116612ec95760405162461bcd60e51b815260206004820152601960248201527f436f756c64206e6f74206465706c6f7920636f6e7472616374000000000000006044820152606401610a74565b6040516001600160a01b038216907fcf78cf0d6f3d8371e1075c69c492ab4ec5d8cf23a1a239b6a51a1d00be7ca31290600090a292915050565b6000612f10826020614571565b83511015612f585760405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606401610a74565b50016020015190565b606081612f6f81601f614571565b1015612fae5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610a74565b612fb88284614571565b84511015612ffc5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610a74565b60608215801561301b5760405191506000825260208201604052613065565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561305457805183526020928301920161303c565b5050858452601f01601f1916604052505b50949350505050565b600080844710156130c15760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e63650000006044820152606401610a74565b825161310f5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f6044820152606401610a74565b8383516020850187f590506001600160a01b038116612dfa5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f79000000000000006044820152606401610a74565b826001600160a01b031661318382611773565b6001600160a01b0316146131eb5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610a74565b6001600160a01b03821661324d5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610a74565b61325860008261217d565b6001600160a01b0383166000908152600460205260408120805460019290613281908490614508565b90915550506001600160a01b03821660009081526004602052604081208054600192906132af908490614571565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60006001600160a01b0384163b1561340357604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290613354903390899088908890600401614589565b6020604051808303816000875af192505050801561338f575060408051601f3d908101601f1916820190925261338c918101906145c6565b60015b6133e9573d8080156133bd576040519150601f19603f3d011682016040523d82523d6000602084013e6133c2565b606091505b5080516133e15760405162461bcd60e51b8152600401610a749061451f565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612dfa565b506001949350505050565b6134188383613441565b6134256000848484613310565b610baa5760405162461bcd60e51b8152600401610a749061451f565b6001600160a01b0382166134975760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610a74565b6000818152600360205260409020546001600160a01b0316156134fc5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610a74565b6001600160a01b0382166000908152600460205260408120805460019290613525908490614571565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b82805461358f90613f7b565b90600052602060002090601f0160209004810192826135b157600085556135f7565b82601f106135ca57805160ff19168380011785556135f7565b828001600101855582156135f7579182015b828111156135f75782518255916020019190600101906135dc565b50613603929150613695565b5090565b82805461361390613f7b565b90600052602060002090601f01602090048101928261363557600085556135f7565b82601f1061364e5782800160ff198235161785556135f7565b828001600101855582156135f7579182015b828111156135f7578235825591602001919060010190613660565b5080546000825590600052602060002090810190610f4491905b5b808211156136035760008155600101613696565b6001600160e01b031981168114610f4457600080fd5b6000602082840312156136d257600080fd5b81356136dd816136aa565b9392505050565b60005b838110156136ff5781810151838201526020016136e7565b8381111561292d5750506000910152565b600081518084526137288160208601602086016136e4565b601f01601f19169290920160200192915050565b6020815260006136dd6020830184613710565b60006020828403121561376157600080fd5b5035919050565b6001600160a01b0381168114610f4457600080fd5b6000806040838503121561379057600080fd5b823561379b81613768565b946020939093013593505050565b60008083601f8401126137bb57600080fd5b5081356001600160401b038111156137d257600080fd5b6020830191508360208285010111156137ea57600080fd5b9250929050565b60008060006040848603121561380657600080fd5b8335925060208401356001600160401b0381111561382357600080fd5b61382f868287016137a9565b9497909650939450505050565b60006020828403121561384e57600080fd5b81356136dd81613768565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561389757613897613859565b604052919050565b600082601f8301126138b057600080fd5b81356001600160401b038111156138c9576138c9613859565b6138dc601f8201601f191660200161386f565b8181528460208386010111156138f157600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561392157600080fd5b8235915060208301356001600160401b0381111561393e57600080fd5b61394a8582860161389f565b9150509250929050565b60006020828403121561396657600080fd5b81356001600160401b0381111561397c57600080fd5b820161012081850312156136dd57600080fd5b803560ff811681146139a057600080fd5b919050565b6000608082840312156139b757600080fd5b604051608081018181106001600160401b03821117156139d9576139d9613859565b60405290508082356139ea81613768565b81526139f86020840161398f565b602082015260408301356040820152606083013560608201525092915050565b600082601f830112613a2957600080fd5b813560206001600160401b03821115613a4457613a44613859565b613a52818360051b0161386f565b82815260079290921b84018101918181019086841115613a7157600080fd5b8286015b84811015613a9557613a8788826139a5565b835291830191608001613a75565b509695505050505050565b600080600080600080600080600080600060e08c8e031215613ac157600080fd5b613aca8c61398f565b9a506001600160401b038060208e01351115613ae557600080fd5b613af58e60208f01358f016137a9565b909b50995060408d0135811015613b0b57600080fd5b613b1b8e60408f01358f016137a9565b909950975060608d0135811015613b3157600080fd5b613b418e60608f01358f016137a9565b909750955060808d0135811015613b5757600080fd5b613b678e60808f01358f016137a9565b909550935060a08d0135925060c08d0135811015613b8457600080fd5b50613b958d60c08e01358e01613a18565b90509295989b509295989b9093969950565b600080600060608486031215613bbc57600080fd5b8335613bc781613768565b92506020840135613bd781613768565b929592945050506040919091013590565b6020808252825182820181905260009190848201906040850190845b81811015613c295783516001600160a01b031683529284019291840191600101613c04565b50909695505050505050565b600060208284031215613c4757600080fd5b6136dd8261398f565b600060208284031215613c6257600080fd5b81356001600160401b03811115613c7857600080fd5b612dfa8482850161389f565b60008060008060008060008060c0898b031215613ca057600080fd5b8835613cab81613768565b975060208901356001600160401b0380821115613cc757600080fd5b613cd38c838d016137a9565b909950975060408b0135915080821115613cec57600080fd5b613cf88c838d016137a9565b909750955060608b01359150613d0d82613768565b90935060808a013590613d1f82613768565b90925060a08a01359080821115613d3557600080fd5b50613d428b828c0161389f565b9150509295985092959890939650565b60008060408385031215613d6557600080fd5b8235613d7081613768565b915060208301358015158114613d8557600080fd5b809150509250929050565b600080600080600060808688031215613da857600080fd5b853594506020860135613dba81613768565b93506040860135925060608601356001600160401b03811115613ddc57600080fd5b613de8888289016137a9565b969995985093965092949392505050565b608081526000613e0c6080830187613710565b8281036020840152613e1e8187613710565b60ff959095166040840152505090151560609091015292915050565b60008083601f840112613e4c57600080fd5b5081356001600160401b03811115613e6357600080fd5b6020830191508360208260051b85010111156137ea57600080fd5b600080600080600080600080600060a08a8c031215613e9c57600080fd5b8935985060208a01356001600160401b0380821115613eba57600080fd5b613ec68d838e01613e3a565b909a50985060408c0135915080821115613edf57600080fd5b613eeb8d838e01613e3a565b909850965060608c0135915080821115613f0457600080fd5b613f108d838e01613e3a565b909650945060808c0135915080821115613f2957600080fd5b50613f368c828d01613e3a565b915080935050809150509295985092959850929598565b60008060408385031215613f6057600080fd5b8235613f6b81613768565b91506020830135613d8581613768565b600181811c90821680613f8f57607f821691505b60208210811415613fb057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252601f908201527f455243373231526f6c6573416464726573733a204e4f54204d414e4147455200604082015260600190565b6020808252601c908201527f45524337323154656d706c6174653a206e6f74204e46544f776e657200000000604082015260600190565b6080815260006140376080830187613710565b6020830195909552506040810192909252606090910152919050565b60208082526021908201527f45524337323154656d706c6174653a204e4f54204d455441444154415f524f4c6040820152604560f81b606082015260800190565b6000808335601e198436030181126140ab57600080fd5b8301803591506001600160401b038211156140c557600080fd5b6020019150368190038213156137ea57600080fd5b6000808335601e198436030181126140f157600080fd5b8301803591506001600160401b0382111561410b57600080fd5b6020019150600781901b36038213156137ea57600080fd5b60006080828403121561413557600080fd5b6136dd83836139a5565b6020808252602c908201527f45524337323154656d706c6174653a2043616e6e6f74207472616e736665722060408201526b1d1a1a5cc81d1bdad95b925960a21b606082015260800190565b6000835161419d8184602088016136e4565b8351908301906141b18183602088016136e4565b01949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000808335601e198436030181126141fa57600080fd5b83016020810192503590506001600160401b0381111561421957600080fd5b8036038313156137ea57600080fd5b8183526000602080850194508260005b8581101561426657813561424b81613768565b6001600160a01b031687529582019590820190600101614238565b509495945050505050565b81835260006001600160fb1b0383111561428a57600080fd5b8260051b8083602087013760009401602001938452509192915050565b81835260006020808501808196508560051b810191508460005b878110156142f75782840389526142d882886141e3565b6142e38682846141ba565b9a87019a95505050908401906001016142c1565b5091979650505050505050565b89815260a0602082018190528101889052600060c060058a901b830181019083018b835b8c8110156143655785840360bf19018352614343828f6141e3565b61434e8682846141ba565b955050506020928301929190910190600101614328565b505050828103604084015261437b81898b614228565b90508281036060840152614390818789614271565b905082810360808401526143a58185876142a7565b9c9b505050505050505050505050565b6000602082840312156143c757600080fd5b81516136dd81613768565b602081526000612dfa6020830184866141ba565b60ff8b16815260e06020820152600061440360e083018b8d6141ba565b8281036040840152614416818a8c6141ba565b9050828103606084015261442b81888a6141ba565b6080840196909652505060a081019290925260c090910152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b600083516144768184602088016136e4565b9190910191825250602001919050565b634e487b7160e01b600052601160045260246000fd5b60006000198214156144b0576144b0614486565b5060010190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b60008282101561451a5761451a614486565b500390565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000821982111561458457614584614486565b500190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906145bc90830184613710565b9695505050505050565b6000602082840312156145d857600080fd5b81516136dd816136aa56fe6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7afa2646970667358221220167cbbb235398818db92650684bdee471f8af67a58d8161b297003a91da4cfa164736f6c634300080a0033",
"linkReferences": {},
"deployedLinkReferences": {}
}