[ { "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": "AddedMinter", "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": "AddedPaymentManager", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "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": "consumeMarketFeeAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "consumeMarketFeeToken", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "consumeMarketFeeAmount", "type": "uint256" } ], "name": "ConsumeMarketFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "currentMinter", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newMinter", "type": "address" } ], "name": "MinterApproved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "currentMinter", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newMinter", "type": "address" } ], "name": "MinterProposed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "dispenserContract", "type": "address" } ], "name": "NewDispenser", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "exchangeId", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "address", "name": "exchangeContract", "type": "address" }, { "indexed": true, "internalType": "address", "name": "baseToken", "type": "address" } ], "name": "NewFixedRate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_newPaymentCollector", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "name": "NewPaymentCollector", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "providerAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "consumerAddress", "type": "address" }, { "indexed": false, "internalType": "bytes32", "name": "orderTxId", "type": "bytes32" }, { "indexed": false, "internalType": "bytes", "name": "providerData", "type": "bytes" }, { "indexed": false, "internalType": "bytes", "name": "providerSignature", "type": "bytes" }, { "indexed": false, "internalType": "bytes", "name": "consumerData", "type": "bytes" }, { "indexed": false, "internalType": "bytes", "name": "consumerSignature", "type": "bytes" }, { "indexed": false, "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "name": "OrderExecuted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "orderTxId", "type": "bytes32" }, { "indexed": false, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "number", "type": "uint256" } ], "name": "OrderReused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "consumer", "type": "address" }, { "indexed": false, "internalType": "address", "name": "payer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "serviceIndex", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "publishMarketAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "name": "OrderStarted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "providerFeeAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "providerFeeToken", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "providerFeeAmount", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "providerData", "type": "bytes" }, { "indexed": false, "internalType": "uint8", "name": "v", "type": "uint8" }, { "indexed": false, "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "indexed": false, "internalType": "bytes32", "name": "s", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", "name": "validUntil", "type": "uint256" } ], "name": "ProviderFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "PublishMarketFeeAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "PublishMarketFeeToken", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "PublishMarketFeeAmount", "type": "uint256" } ], "name": "PublishMarketFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "address", "name": "PublishMarketFeeAddress", "type": "address" }, { "indexed": false, "internalType": "address", "name": "PublishMarketFeeToken", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "PublishMarketFeeAmount", "type": "uint256" } ], "name": "PublishMarketFeeChanged", "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": "RemovedMinter", "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": "RemovedPaymentManager", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [], "name": "BASE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERMIT_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_minter", "type": "address" } ], "name": "addMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_paymentManager", "type": "address" } ], "name": "addPaymentManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "authERC20", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "consumer", "type": "address" }, { "internalType": "uint256", "name": "serviceIndex", "type": "uint256" }, { "components": [ { "internalType": "address", "name": "providerFeeAddress", "type": "address" }, { "internalType": "address", "name": "providerFeeToken", "type": "address" }, { "internalType": "uint256", "name": "providerFeeAmount", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" }, { "internalType": "uint256", "name": "validUntil", "type": "uint256" }, { "internalType": "bytes", "name": "providerData", "type": "bytes" } ], "internalType": "struct ERC20TemplateEnterprise.providerFee", "name": "_providerFee", "type": "tuple" }, { "components": [ { "internalType": "address", "name": "consumeMarketFeeAddress", "type": "address" }, { "internalType": "address", "name": "consumeMarketFeeToken", "type": "address" }, { "internalType": "uint256", "name": "consumeMarketFeeAmount", "type": "uint256" } ], "internalType": "struct ERC20TemplateEnterprise.consumeMarketFee", "name": "_consumeMarketFee", "type": "tuple" } ], "internalType": "struct ERC20TemplateEnterprise.OrderParams", "name": "_orderParams", "type": "tuple" }, { "internalType": "address", "name": "dispenserContract", "type": "address" } ], "name": "buyFromDispenserAndOrder", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "consumer", "type": "address" }, { "internalType": "uint256", "name": "serviceIndex", "type": "uint256" }, { "components": [ { "internalType": "address", "name": "providerFeeAddress", "type": "address" }, { "internalType": "address", "name": "providerFeeToken", "type": "address" }, { "internalType": "uint256", "name": "providerFeeAmount", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" }, { "internalType": "uint256", "name": "validUntil", "type": "uint256" }, { "internalType": "bytes", "name": "providerData", "type": "bytes" } ], "internalType": "struct ERC20TemplateEnterprise.providerFee", "name": "_providerFee", "type": "tuple" }, { "components": [ { "internalType": "address", "name": "consumeMarketFeeAddress", "type": "address" }, { "internalType": "address", "name": "consumeMarketFeeToken", "type": "address" }, { "internalType": "uint256", "name": "consumeMarketFeeAmount", "type": "uint256" } ], "internalType": "struct ERC20TemplateEnterprise.consumeMarketFee", "name": "_consumeMarketFee", "type": "tuple" } ], "internalType": "struct ERC20TemplateEnterprise.OrderParams", "name": "_orderParams", "type": "tuple" }, { "components": [ { "internalType": "address", "name": "exchangeContract", "type": "address" }, { "internalType": "bytes32", "name": "exchangeId", "type": "bytes32" }, { "internalType": "uint256", "name": "maxBaseTokenAmount", "type": "uint256" }, { "internalType": "uint256", "name": "swapMarketFee", "type": "uint256" }, { "internalType": "address", "name": "marketFeeAddress", "type": "address" } ], "internalType": "struct ERC20TemplateEnterprise.FreParams", "name": "_freParams", "type": "tuple" } ], "name": "buyFromFreAndOrder", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "cap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cleanFrom721", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "cleanPermissions", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_dispenser", "type": "address" }, { "internalType": "uint256", "name": "maxTokens", "type": "uint256" }, { "internalType": "uint256", "name": "maxBalance", "type": "uint256" }, { "internalType": "bool", "name": "withMint", "type": "bool" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "createDispenser", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "fixedPriceAddress", "type": "address" }, { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "uint256[]", "name": "uints", "type": "uint256[]" } ], "name": "createFixedRate", "outputs": [ { "internalType": "bytes32", "name": "exchangeId", "type": "bytes32" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getDispensers", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getERC721Address", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getFixedRates", "outputs": [ { "components": [ { "internalType": "address", "name": "contractAddress", "type": "address" }, { "internalType": "bytes32", "name": "id", "type": "bytes32" } ], "internalType": "struct ERC20TemplateEnterprise.fixedRate[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getId", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "getPaymentCollector", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "getPermissions", "outputs": [ { "components": [ { "internalType": "bool", "name": "minter", "type": "bool" }, { "internalType": "bool", "name": "paymentManager", "type": "bool" } ], "internalType": "struct ERC20Roles.RolesERC20", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPublishingMarketFee", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string[]", "name": "strings_", "type": "string[]" }, { "internalType": "address[]", "name": "addresses_", "type": "address[]" }, { "internalType": "address[]", "name": "factoryAddresses_", "type": "address[]" }, { "internalType": "uint256[]", "name": "uints_", "type": "uint256[]" }, { "internalType": "bytes[]", "name": "bytes_", "type": "bytes[]" } ], "name": "initialize", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "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": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isMinter", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "orderTxId", "type": "bytes32" }, { "internalType": "bytes", "name": "providerData", "type": "bytes" }, { "internalType": "bytes", "name": "providerSignature", "type": "bytes" }, { "internalType": "bytes", "name": "consumerData", "type": "bytes" }, { "internalType": "bytes", "name": "consumerSignature", "type": "bytes" }, { "internalType": "address", "name": "consumerAddress", "type": "address" } ], "name": "orderExecuted", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "permissions", "outputs": [ { "internalType": "bool", "name": "minter", "type": "bool" }, { "internalType": "bool", "name": "paymentManager", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_minter", "type": "address" } ], "name": "removeMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_paymentManager", "type": "address" } ], "name": "removePaymentManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "orderTxId", "type": "bytes32" }, { "components": [ { "internalType": "address", "name": "providerFeeAddress", "type": "address" }, { "internalType": "address", "name": "providerFeeToken", "type": "address" }, { "internalType": "uint256", "name": "providerFeeAmount", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" }, { "internalType": "uint256", "name": "validUntil", "type": "uint256" }, { "internalType": "bytes", "name": "providerData", "type": "bytes" } ], "internalType": "struct ERC20TemplateEnterprise.providerFee", "name": "_providerFee", "type": "tuple" } ], "name": "reuseOrder", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "_value", "type": "bytes" } ], "name": "setData", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newPaymentCollector", "type": "address" } ], "name": "setPaymentCollector", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_publishMarketFeeAddress", "type": "address" }, { "internalType": "address", "name": "_publishMarketFeeToken", "type": "address" }, { "internalType": "uint256", "name": "_publishMarketFeeAmount", "type": "uint256" } ], "name": "setPublishingMarketFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "consumer", "type": "address" }, { "internalType": "uint256", "name": "serviceIndex", "type": "uint256" }, { "components": [ { "internalType": "address", "name": "providerFeeAddress", "type": "address" }, { "internalType": "address", "name": "providerFeeToken", "type": "address" }, { "internalType": "uint256", "name": "providerFeeAmount", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" }, { "internalType": "uint256", "name": "validUntil", "type": "uint256" }, { "internalType": "bytes", "name": "providerData", "type": "bytes" } ], "internalType": "struct ERC20TemplateEnterprise.providerFee", "name": "_providerFee", "type": "tuple" }, { "components": [ { "internalType": "address", "name": "consumeMarketFeeAddress", "type": "address" }, { "internalType": "address", "name": "consumeMarketFeeToken", "type": "address" }, { "internalType": "uint256", "name": "consumeMarketFeeAmount", "type": "uint256" } ], "internalType": "struct ERC20TemplateEnterprise.consumeMarketFee", "name": "_consumeMarketFee", "type": "tuple" } ], "name": "startOrder", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawETH", "outputs": [], "stateMutability": "payable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6080604052600b805460ff191690553480156200001b57600080fd5b5060408051808201825260048152631d195cdd60e21b60208083019182528351808501909452600a8452691d195cdd14de5b589bdb60b21b9084015281519192916200006a916003916200008e565b508051620000809060049060208401906200008e565b505060016007555062000171565b8280546200009c9062000134565b90600052602060002090601f016020900481019282620000c057600085556200010b565b82601f10620000db57805160ff19168380011785556200010b565b828001600101855582156200010b579182015b828111156200010b578251825591602001919060010190620000ee565b50620001199291506200011d565b5090565b5b808211156200011957600081556001016200011e565b600181811c908216806200014957607f821691505b602082108114156200016b57634e487b7160e01b600052602260045260246000fd5b50919050565b615dd180620001816000396000f3fe6080604052600436106102c65760003560e01c80635d1ca6311161017e578063a8c09b0b116100d3578063d505accf1161008f578063e487c2e81161006c578063e487c2e814610988578063ec342ad01461099d578063ef867ff4146109b9578063f887ea40146109d957005b8063d505accf14610940578063dd62ed3e14610960578063e086e5ec1461098057005b8063a8c09b0b14610867578063a9059cbb14610887578063aa271e1a146108a7578063aa492ef9146108e0578063ab62f0e114610900578063b3998be01461092057005b806382c03da51161013a57806395d89b411161011757806395d89b41146107f257806396fb3eaf14610807578063983b2d5614610827578063a457c2d71461084757005b806382c03da51461079d57806389208f0f146107b25780638b96412b146107d257005b80635d1ca631146106c457806370a08231146106d857806379cc67901461070e57806379d9d7f31461072e5780637dda231e1461074e5780637ecebe001461077057005b8063313ce56711610234578063397b3743116101f057806347ac7d55116101cd57806347ac7d551461064d5780634f189cb21461066f57806357a3a31b1461068457806357ad5ff6146106a457005b8063397b3743146105d157806340c10f191461060d57806342966c681461062d57005b8063313ce5671461052c578063355274ea1461054e578063361fef49146105635780633644e51514610583578063392e53cd1461059957806339509351146105b157005b8063191c918a11610283578063191c918a146104585780631b53b05f1461047857806323b872dd1461049857806325b00243146104b85780633092afd5146104d857806330adf81f146104f857005b80627ffb78146102cf57806301e882081461030b57806306fdde031461035b578063095ea7b31461037d578063160a7925146103ad57806318160ddd1461043957005b366102cd57005b005b3480156102db57600080fd5b50600b5461010090046001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561031757600080fd5b50610344610326366004614d60565b60056020526000908152604090205460ff8082169161010090041682565b604080519215158352901515602083015201610302565b34801561036757600080fd5b506103706109f9565b6040516103029190614da9565b34801561038957600080fd5b5061039d610398366004614ddc565b610a8b565b6040519015158152602001610302565b3480156103b957600080fd5b5061041a6103c8366004614d60565b6040805180820190915260008082526020820152506001600160a01b031660009081526005602090815260409182902082518084019093525460ff808216151584526101009091041615159082015290565b6040805182511515815260209283015115159281019290925201610302565b34801561044557600080fd5b506002545b604051908152602001610302565b34801561046457600080fd5b506102cd610473366004614e16565b610aa5565b34801561048457600080fd5b506102cd610493366004614e8d565b610cea565b3480156104a457600080fd5b5061039d6104b3366004614ede565b610dfd565b3480156104c457600080fd5b506102cd6104d3366004614d60565b610e23565b3480156104e457600080fd5b506102cd6104f3366004614d60565b610f42565b34801561050457600080fd5b5061044a7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b34801561053857600080fd5b5060125b60405160ff9091168152602001610302565b34801561055a57600080fd5b50600a5461044a565b34801561056f57600080fd5b506102cd61057e366004614f32565b61105e565b34801561058f57600080fd5b5061044a60105481565b3480156105a557600080fd5b50600b5460ff1661039d565b3480156105bd57600080fd5b5061039d6105cc366004614ddc565b6110ab565b3480156105dd57600080fd5b50600d54600e54600f54604080516001600160a01b03948516815293909216602084015290820152606001610302565b34801561061957600080fd5b506102cd610628366004614ddc565b6110cd565b34801561063957600080fd5b506102cd610648366004614f78565b61119a565b34801561065957600080fd5b506106626111a4565b6040516103029190614fd5565b34801561067b57600080fd5b506102cd611205565b34801561069057600080fd5b506102cd61069f366004614d60565b6112e0565b3480156106b057600080fd5b506102cd6106bf366004614ede565b6114a7565b3480156106d057600080fd5b50600261053c565b3480156106e457600080fd5b5061044a6106f3366004614d60565b6001600160a01b031660009081526020819052604090205490565b34801561071a57600080fd5b506102cd610729366004614ddc565b611660565b34801561073a57600080fd5b506102cd610749366004614fe8565b611675565b34801561075a57600080fd5b506107636118ee565b604051610302919061505b565b34801561077c57600080fd5b5061044a61078b366004614d60565b60116020526000908152604090205481565b3480156107a957600080fd5b506102cd611963565b3480156107be57600080fd5b506102cd6107cd3660046150fb565b6119c2565b3480156107de57600080fd5b5061044a6107ed3660046152ac565b611caf565b3480156107fe57600080fd5b50610370611fd7565b34801561081357600080fd5b5061039d610822366004614d60565b611fe6565b34801561083357600080fd5b506102cd610842366004614d60565b612064565b34801561085357600080fd5b5061039d610862366004614ddc565b612180565b34801561087357600080fd5b506102cd610882366004615381565b612206565b34801561089357600080fd5b5061039d6108a2366004614ddc565b612673565b3480156108b357600080fd5b5061039d6108c2366004614d60565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156108ec57600080fd5b506102cd6108fb366004614d60565b612681565b34801561090c57600080fd5b506102cd61091b3660046153da565b61279d565b34801561092c57600080fd5b5061039d61093b36600461545f565b612958565b34801561094c57600080fd5b506102cd61095b366004615560565b612a8b565b34801561096c57600080fd5b5061044a61097b3660046155ce565b612c9d565b6102cd612cc8565b34801561099457600080fd5b506102ee612d08565b3480156109a957600080fd5b5061044a670de0b6b3a764000081565b3480156109c557600080fd5b506102ee6109d4366004614f78565b612da1565b3480156109e557600080fd5b506012546102ee906001600160a01b031681565b606060088054610a08906155fc565b80601f0160208091040260200160405190810160405280929190818152602001828054610a34906155fc565b8015610a815780601f10610a5657610100808354040283529160200191610a81565b820191906000526020600020905b815481529060010190602001808311610a6457829003601f168201915b5050505050905090565b600033610a99818585612dcb565b60019150505b92915050565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b159190615631565b6020015180610b9c5750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015610b6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9191906156b5565b6001600160a01b0316145b610bc15760405162461bcd60e51b8152600401610bb8906156d2565b60405180910390fd5b610bc9612ef0565b8115610bd857610bd885612f4a565b601480546001810182556000919091527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0180546001600160a01b0319166001600160a01b0387169081179091556040519081527fa31ffd41531537eb31bfd827a3f5372b5f62bf4dd8579e5354b280dc58490e709060200160405180910390a1601254604051636b14d00560e11b81526001600160a01b0387811660048301523060248301819052604483018890526064830187905233608484015260a48301529091169063d629a00a9060c401600060405180830381600087803b158015610cc157600080fd5b505af1158015610cd5573d6000803e3d6000fd5b50505050610ce36001600755565b5050505050565b610cf2612ef0565b604051631d746d8360e01b8152306004820152670de0b6b3a764000060248201819052336044830152906001600160a01b03831690631d746d8390606401600060405180830381600087803b158015610d4a57600080fd5b505af1158015610d5e573d6000803e3d6000fd5b50503360009081526020819052604090205483925090501015610dc35760405162461bcd60e51b815260206004820152601f60248201527f556e61626c6520746f206765742044542066726f6d2044697370656e736572006044820152606401610bb8565b610dee610dd36020850185614d60565b6020850135610de56040870187615707565b86606001611675565b50610df96001600755565b5050565b600033610e0b858285613021565b610e1685858561309b565b60019150505b9392505050565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa158015610e6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e939190615631565b6020015180610f1a5750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015610eeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0f91906156b5565b6001600160a01b0316145b610f365760405162461bcd60e51b8152600401610bb8906156d2565b610f3f8161323f565b50565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa158015610f8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb29190615631565b60200151806110395750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa15801561100a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102e91906156b5565b6001600160a01b0316145b6110555760405162461bcd60e51b8152600401610bb8906156d2565b610f3f816132b1565b60408051838152336020820152428183015243606082015290517f526e31449ea46e2aecf9b480c8d7dfa191348ef74ffdf75b445a6ab726daa6ff9181900360800190a1610df981613311565b600033610a998185856110be8383612c9d565b6110c8919061573d565b612dcb565b3360009081526005602052604090205460ff1661112c5760405162461bcd60e51b815260206004820152601960248201527f455243323054656d706c6174653a204e4f54204d494e544552000000000000006044820152606401610bb8565b600a546111428261113c60025490565b90613723565b11156111905760405162461bcd60e51b815260206004820152601f60248201527f44617461746f6b656e54656d706c6174653a20636170206578636565646564006044820152606401610bb8565b610df9828261372f565b610f3f33826137ee565b60606014805480602002602001604051908101604052809291908181526020018280548015610a8157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111de575050505050905090565b600b546040516331a9108f60e11b8152600160048201526101009091046001600160a01b031690636352211e90602401602060405180830381865afa158015611252573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127691906156b5565b6001600160a01b0316336001600160a01b0316146112d65760405162461bcd60e51b815260206004820152601b60248201527f455243323054656d706c6174653a206e6f74204e46544f776e657200000000006044820152606401610bb8565b6112de61391d565b565b33600090815260056020526040902054610100900460ff16806113735750600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa15801561134a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136e9190615631565b602001515b806113f65750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa1580156113c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113eb91906156b5565b6001600160a01b0316145b6114565760405162461bcd60e51b815260206004820152602b60248201527f455243323054656d706c6174653a204e4f54205041594d454e54204d414e414760448201526a22a91037b91027aba722a960a91b6064820152608401610bb8565b61145f81613df8565b604080514281524360208201526001600160a01b0383169133917f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc910160405180910390a350565b600d546001600160a01b031633146115145760405162461bcd60e51b815260206004820152602a60248201527f455243323054656d706c6174653a206e6f74207075626c6973684d61726b65746044820152694665654164647265737360b01b6064820152608401610bb8565b6001600160a01b03831661157b5760405162461bcd60e51b815260206004820152602860248201527f496e76616c6964205f7075626c6973684d61726b657446656541646472657373604482015267206164647265737360c01b6064820152608401610bb8565b6001600160a01b0382166115e05760405162461bcd60e51b815260206004820152602660248201527f496e76616c6964205f7075626c6973684d61726b6574466565546f6b656e206160448201526564647265737360d01b6064820152608401610bb8565b600d80546001600160a01b038581166001600160a01b03199283168117909355600e8054918616919092168117909155600f839055604080513381526020810193909352820152606081018290527f02ab4b3fc023109c2d0da394bda239166c833f63c42b71b67ed4b836dca0ddfe9060800160405180910390a1505050565b61166b823383613021565b610df982826137ee565b33600090815260208190526040902054670de0b6b3a7640000908111156116ea5760405162461bcd60e51b8152602060048201526024808201527f4e6f7420656e6f7567682064617461746f6b656e7320746f207374617274204f604482015263393232b960e11b6064820152608401610bb8565b600d5460408051338152602081018490529081018690524260608201524360808201526001600160a01b03918216918716907fe1c4fa794edfa8f619b8257a077398950357b9c6398528f94480307352f9afcc9060a00160405180910390a36000600f541180156117655750600e546001600160a01b031615155b801561177b5750600d546001600160a01b031615155b156117f057600e54600d54600f546117a3926001600160a01b03908116923392911690613e1a565b600e54600d54600f546040519081526001600160a01b0392831692909116907f4049a448ac6f0284a98d2cb9199e73605944ea5bec901a037f88c84703de82b29060200160405180910390a35b6000826040013511801561181d575060006118116040840160208501614d60565b6001600160a01b031614155b801561183f575060006118336020840184614d60565b6001600160a01b031614155b156118dc5761186f6118576040840160208501614d60565b336118656020860186614d60565b8560400135613e1a565b61187f6040830160208401614d60565b6001600160a01b03166118956020840184614d60565b6001600160a01b03167f6d11837f46cc09b011cf4aae09fcade046c020aac088090ae4f77ff67b70797284604001356040516118d391815260200190565b60405180910390a35b6118e583613311565b610ce38161119a565b60606013805480602002602001604051908101604052809291908181526020016000905b8282101561195a576000848152602090819020604080518082019091526002850290910180546001600160a01b03168252600190810154828401529083529092019101611912565b50505050905090565b600b5461010090046001600160a01b031633146112d65760405162461bcd60e51b815260206004820152601f60248201527f455243323054656d706c6174653a204e4f542037323120436f6e7472616374006044820152606401610bb8565b336001600160a01b0382161415611a1b5760405162461bcd60e51b815260206004820152601f60248201527f50726f76696465722063616e6e6f742062652074686520636f6e73756d6572006044820152606401610bb8565b60006040518060400160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a33320000000081525090506000818c8c8c604051602001611a6d93929190615755565b60405160208183030381529060405280519060200120604051602001611a9492919061576f565b604051602081830303815290604052805190602001209050336001600160a01b0316611af6828b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613f6192505050565b6001600160a01b031614611b4c5760405162461bcd60e51b815260206004820152601f60248201527f50726f7669646572207369676e617475726520636865636b206661696c6564006044820152606401610bb8565b6000828888604051602001611b62929190615791565b60405160208183030381529060405280519060200120604051602001611b8992919061576f565b604051602081830303815290604052805190602001209050836001600160a01b0316611beb8288888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613f6192505050565b6001600160a01b031614611c415760405162461bcd60e51b815260206004820152601f60248201527f436f6e73756d6572207369676e617475726520636865636b206661696c6564006044820152606401610bb8565b836001600160a01b0316336001600160a01b03167fc9a10280e9c735c63092fa5431e6acb3ed342e08b69a083e5e676994eb7070f98f8f8f8f8f8f8f8f8f4243604051611c989b9a999897969594939291906157ca565b60405180910390a350505050505050505050505050565b600b5460405163160a792560e01b815233600482015260009161010090046001600160a01b03169063160a792590602401608060405180830381865afa158015611cfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d219190615631565b6020015180611da85750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015611d79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9d91906156b5565b6001600160a01b0316145b611dc45760405162461bcd60e51b8152600401610bb8906156d2565b611dcc612ef0565b3083600381518110611de057611de061583c565b60200260200101906001600160a01b031690816001600160a01b031681525050600082600481518110611e1557611e1561583c565b60200260200101511115611e2c57611e2c84612f4a565b601254604051638244937560e01b81526001600160a01b0390911690638244937590611e6090879087908790600401615852565b6020604051808303816000875af1158015611e7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea391906158b8565b905082600081518110611eb857611eb861583c565b60200260200101516001600160a01b031683600181518110611edc57611edc61583c565b60200260200101516001600160a01b03167fb3fac3ae95956dbac74e63ba8dac94081832395c8788e3049c900a7732f348058387604051611f309291909182526001600160a01b0316602082015260400190565b60405180910390a3604080518082019091526001600160a01b03858116825260208201838152601380546001808201835560009290925293517f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090600290950294850180546001600160a01b0319169190941617909255517f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a09190920191909155600755610e1c565b606060098054610a08906155fc565b600b5460405163160a792560e01b81526001600160a01b0383811660048301526000926101009004169063160a792590602401608060405180830381865afa158015612036573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205a9190615631565b6020015192915050565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa1580156120b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d49190615631565b602001518061215b5750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa15801561212c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215091906156b5565b6001600160a01b0316145b6121775760405162461bcd60e51b8152600401610bb8906156d2565b610f3f81612f4a565b6000338161218e8286612c9d565b9050838110156121ee5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610bb8565b6121fb8286868403612dcb565b506001949350505050565b61220e612ef0565b600061221d6020830183614d60565b604051634c87087d60e01b81526020840135600482015290915060009081906001600160a01b03841690634c87087d9060240161018060405180830381865afa15801561226e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229291906158d1565b5050505050505050935050925050306001600160a01b0316826001600160a01b0316146123115760405162461bcd60e51b815260206004820152602760248201527f5468697320466978656452617465206973206e6f742070726f766964696e67206044820152661d1a1a5cc8111560ca1b6064820152608401610bb8565b604051636e8de4b560e11b815260208501356004820152670de0b6b3a76400006024820152606085013560448201526000906001600160a01b0385169063dd1bc96a90606401608060405180830381865afa158015612374573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612398919061598e565b505050905084604001358111156124015760405162461bcd60e51b815260206004820152602760248201527f46697865645261746545786368616e67653a20546f6f206d616e79206261736560448201526620746f6b656e7360c81b6064820152608401610bb8565b61240d82333084613e1a565b61242e61241d6020870187614d60565b6001600160a01b0384169083614039565b6001600160a01b0384166368c4b7e96020870135670de0b6b3a76400008461245c60a08b0160808c01614d60565b6040516001600160e01b031960e087901b1681526004810194909452602484019290925260448301526001600160a01b031660648201526060880135608482015260a401600060405180830381600087803b1580156124ba57600080fd5b505af11580156124ce573d6000803e3d6000fd5b505030600090815260208190526040902054670de0b6b3a764000092509050101561253b5760405162461bcd60e51b815260206004820152601f60248201527f556e61626c6520746f206275792044542066726f6d20466978656452617465006044820152606401610bb8565b61254e3033670de0b6b3a764000061309b565b61257961255e6020880188614d60565b602088013561257060408a018a615707565b89606001611675565b604051634c87087d60e01b8152602086013560048201526000906001600160a01b03861690634c87087d9060240161018060405180830381865afa1580156125c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e991906158d1565b509a5050505050505050505050600081111561266457604051637997ca3b60e11b815260208701356004820152602481018290526001600160a01b0386169063f32f947690604401600060405180830381600087803b15801561264b57600080fd5b505af115801561265f573d6000803e3d6000fd5b505050505b5050505050610df96001600755565b600033610a9981858561309b565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa1580156126cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126f19190615631565b60200151806127785750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015612749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276d91906156b5565b6001600160a01b0316145b6127945760405162461bcd60e51b8152600401610bb8906156d2565b610f3f8161411e565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa1580156127e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061280d9190615631565b60200151806128945750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015612865573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061288991906156b5565b6001600160a01b0316145b6128b05760405162461bcd60e51b8152600401610bb8906156d2565b6040516bffffffffffffffffffffffff193060601b16602082015260009060340160408051808303601f19018152908290528051602090910120600b546301caf8fd60e31b835290925061010090046001600160a01b031690630e57c7e890612921908490879087906004016159c4565b600060405180830381600087803b15801561293b57600080fd5b505af115801561294f573d6000803e3d6000fd5b50505050505050565b600b5460009060ff16156129c85760405162461bcd60e51b815260206004820152603160248201527f455243323054656d706c6174653a20746f6b656e20696e7374616e636520616c6044820152701c9958591e481a5b9a5d1a585b1a5e9959607a1b6064820152608401610bb8565b612a7c6129d58b8d615a3e565b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c91829185019084908082843760009201919091525050604080516020808d0282810182019093528c82529093508c92508b918291850190849080828437600092019190915250612a7792508991508a9050615ac5565b6141ff565b9b9a5050505050505050505050565b43841015612ace5760405162461bcd60e51b815260206004820152601060248201526f115490cc8c11150e881156141254915160821b6044820152606401610bb8565b6010546001600160a01b038816600090815260116020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b919087612b2183615b40565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e00160405160208183030381529060405280519060200120604051602001612b9a92919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015612c05573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590612c3b5750886001600160a01b0316816001600160a01b0316145b612c875760405162461bcd60e51b815260206004820152601a60248201527f455243323044543a20494e56414c49445f5349474e41545552450000000000006044820152606401610bb8565b612c92898989612dcb565b505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b612cd0612d08565b6001600160a01b03166108fc479081150290604051600060405180830381858888f19350505050158015610f3f573d6000803e3d6000fd5b600c546000906001600160a01b0316612d9157600b546040516331a9108f60e11b8152600160048201526101009091046001600160a01b031690636352211e90602401602060405180830381865afa158015612d68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8c91906156b5565b905090565b50600c546001600160a01b031690565b60068181548110612db157600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b038316612e2d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610bb8565b6001600160a01b038216612e8e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610bb8565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60026007541415612f435760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610bb8565b6002600755565b6001600160a01b03811615610f3f576001600160a01b0381166000908152600560205260409020805460ff1615612fc35760405162461bcd60e51b815260206004820152601d60248201527f4552433230526f6c65733a2020414c52454144592041204d494e5445520000006044820152606401610bb8565b805460ff19166001178155612fd7826146e9565b6040805142815243602082015233916001600160a01b038516917f4f7e100eb1ee13e903798bd0d6aa854152e07eb05544f392b9409c12935c809591015b60405180910390a35050565b600061302d8484612c9d565b9050600019811461309557818110156130885760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610bb8565b6130958484848403612dcb565b50505050565b6001600160a01b0383166130ff5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610bb8565b6001600160a01b0382166131615760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610bb8565b6001600160a01b038316600090815260208190526040902054818110156131d95760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610bb8565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3613095565b6001600160a01b03811660008181526005602052604090819020805461ff00191681559051909133917faee911eec8b2df8f3ae0464841541b1e5f339519bd5cf51889fe8b07fecff658906132a09042904390918252602082015260400190565b60405180910390a3610df9826147a0565b6001600160a01b03811660008181526005602052604090819020805460ff191681559051909133917fefa2735987005aaa89c050c0ff8cc9ae7d9079d19382081c429130f98c52d480906132a09042904390918252602082015260400190565b60408051808201909152601c81527f19457468657265756d205369676e6564204d6573736167653a0a333200000000602082015260008161335560e0850185615b5b565b6133626020870187614d60565b6133726040880160208901614d60565b87604001358860c0013560405160200161339196959493929190615ba1565b604051602081830303815290604052805190602001206040516020016133b892919061576f565b60408051601f198184030181529190528051602090910120905060006001826133e76080870160608801615bdf565b6040805160008152602081018083529390935260ff90911690820152608080870135606083015260a08088013591830191909152016020604051602081039080840390855afa15801561343e573d6000803e3d6000fd5b5050604051601f190151915061345990506020850185614d60565b6001600160a01b0316816001600160a01b0316146134b05760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070726f76696465722066656560601b6044820152606401610bb8565b6134c06040850160208601614d60565b6001600160a01b03166134d66020860186614d60565b6001600160a01b03167ff8ed11cdaaf10eca2b6c941fb802cb8682afe86cac1eb93f70d0780fa062c544604087013561351260e0890189615b5b565b61352260808b0160608c01615bdf565b8a608001358b60a001358c60c001356040516135449796959493929190615bfa565b60405180910390a3600084604001351180156135795750600061356d6040860160208701614d60565b6001600160a01b031614155b801561359b5750600061358f6020860186614d60565b6001600160a01b031614155b156130955760125460408051636c45e88160e01b815290516000926001600160a01b031691636c45e8819160048083019260209291908290030181865afa1580156135ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061360e91906158b8565b90506000811561363b57613638670de0b6b3a76400006136326040890135856148ee565b906148fa565b90505b600061364b604088013583614906565b905061366c6136606040890160208a01614d60565b33308a60400135613e1a565b61369d61367c6020890189614d60565b8261368d60408b0160208c01614d60565b6001600160a01b03169190614912565b811561294f5760125460408051631a81876d60e01b8152905161294f926001600160a01b031691631a81876d9160048083019260209291908290030181865afa1580156136ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061371291906156b5565b8361368d60408b0160208c01614d60565b6000610e1c828461573d565b6001600160a01b0382166137855760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610bb8565b8060026000828254613797919061573d565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b03821661384e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610bb8565b6001600160a01b038216600090815260208190526040902054818110156138c25760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610bb8565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101612ee3565b505050565b60145460135460009161392f9161573d565b9050600080826001600160401b0381111561394c5761394c6151d8565b604051908082528060200260200182016040528015613975578160200160208202803683370190505b50905060005b601354811015613c5b5760006013828154811061399a5761399a61583c565b60009182526020822060029091020154601380546001600160a01b039092169350829182918591634c87087d9190889081106139d8576139d861583c565b9060005260206000209060020201600101546040518263ffffffff1660e01b8152600401613a0891815260200190565b61018060405180830381865afa158015613a26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a4a91906158d1565b9b509b509b505050505050505050506000821115613af057836001600160a01b031663f32f947660138781548110613a8457613a8461583c565b906000526020600020906002020160010154846040518363ffffffff1660e01b8152600401613abd929190918252602082015260400190565b600060405180830381600087803b158015613ad757600080fd5b505af1158015613aeb573d6000803e3d6000fd5b505050505b8215613b8457836001600160a01b031663c612e48a60138781548110613b1857613b1861583c565b906000526020600020906002020160010154856040518363ffffffff1660e01b8152600401613b51929190918252602082015260400190565b600060405180830381600087803b158015613b6b57600080fd5b505af1158015613b7f573d6000803e3d6000fd5b505050505b613bc760138681548110613b9a57613b9a61583c565b600091825260208083206002909202909101546001600160a01b0316825260059052604090205460ff1690565b8015613bd557506001811515145b15613c445760138581548110613bed57613bed61583c565b600091825260209091206002909102015486516001600160a01b0390911690879089908110613c1e57613c1e61583c565b6001600160a01b039092166020928302919091019091015286613c4081615b40565b9750505b505050508080613c5390615b40565b91505061397b565b5060005b601454811015613da05760148181548110613c7c57613c7c61583c565b60009182526020909120015460405163f9bfaa7d60e01b81523060048201526001600160a01b039091169063f9bfaa7d90602401600060405180830381600087803b158015613cca57600080fd5b505af1158015613cde573d6000803e3d6000fd5b50505050613d2060148281548110613cf857613cf861583c565b60009182526020808320909101546001600160a01b0316825260059052604090205460ff1690565b15613d8e5760148181548110613d3857613d3861583c565b9060005260206000200160009054906101000a90046001600160a01b0316828481518110613d6857613d6861583c565b6001600160a01b039092166020928302919091019091015282613d8a81615b40565b9350505b80613d9881615b40565b915050613c5f565b613da8614942565b50600c80546001600160a01b031916905560005b8281101561309557613de6828281518110613dd957613dd961583c565b6020026020010151612f4a565b80613df081615b40565b915050613dbc565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516370a0823160e01b81526001600160a01b038381166004830152600091908616906370a0823190602401602060405180830381865afa158015613e64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e8891906158b8565b9050613e9f6001600160a01b0386168585856149f1565b613ea98183613723565b6040516370a0823160e01b81526001600160a01b0385811660048301528716906370a0823190602401602060405180830381865afa158015613eef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f1391906158b8565b1015610ce35760405162461bcd60e51b815260206004820152601a60248201527f5472616e7366657220616d6f756e7420697320746f6f206c6f770000000000006044820152606401610bb8565b6000806000808451604114613f7c5760009350505050610a9f565b50505060208201516040830151604184015160ff16601b811015613fa857613fa5601b82615c3d565b90505b8060ff16601b14158015613fc057508060ff16601c14155b15613fd15760009350505050610a9f565b60408051600081526020810180835288905260ff831691810191909152606081018490526080810183905260019060a0016020604051602081039080840390855afa158015614024573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa15801561408a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140ae91906158b8565b6140b8919061573d565b6040516001600160a01b03851660248201526044810182905290915061309590859063095ea7b360e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152614a29565b6001600160a01b03811615610f3f576001600160a01b03811660009081526005602052604090208054610100900460ff16156141a75760405162461bcd60e51b815260206004820152602260248201527f4552433230526f6c65733a2020414c5245414459204120464545204d414e414760448201526122a960f11b6064820152608401610bb8565b805461ff0019166101001781556141bd826146e9565b6040805142815243602082015233916001600160a01b038516917fb17da2e9910b4ba5754e8872385ba315a238bafb5ae221fc85093c33432c40a79101613015565b600080846000815181106142155761421561583c565b60200260200101519050846001815181106142325761423261583c565b6020908102919091010151601280546001600160a01b0319166001600160a01b0392831617905581166142bc5760405162461bcd60e51b815260206004820152602c60248201527f455243323054656d706c6174653a20496e76616c6964206d696e7465722c202060448201526b7a65726f206164647265737360a01b6064820152608401610bb8565b6012546001600160a01b03166143285760405162461bcd60e51b815260206004820152602b60248201527f455243323054656d706c6174653a20496e76616c696420726f757465722c207a60448201526a65726f206164647265737360a81b6064820152608401610bb8565b8360008151811061433b5761433b61583c565b60200260200101516000141561439f5760405162461bcd60e51b8152602060048201526024808201527f44617461746f6b656e54656d706c6174653a20496e76616c6964206361702076604482015263616c756560e01b6064820152608401610bb8565b836000815181106143b2576143b261583c565b6020026020010151600a81905550866000815181106143d3576143d361583c565b6020026020010151600890805190602001906143f0929190614c88565b50866001815181106144045761440461583c565b602002602001015160099080519060200190614421929190614c88565b50600b805460ff196001600160a01b03841661010002166001600160a81b03199091161760011790558551614461908790600090613dd957613dd961583c565b60006001600160a01b03168660018151811061447f5761447f61583c565b60200260200101516001600160a01b031614614529576144b8866001815181106144ab576144ab61583c565b6020026020010151613df8565b856001815181106144cb576144cb61583c565b60200260200101516001600160a01b0316336001600160a01b03167f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc4243604051614520929190918252602082015260400190565b60405180910390a35b8560028151811061453c5761453c61583c565b6020026020010151600d60006101000a8154816001600160a01b0302191690836001600160a01b031602179055508560038151811061457d5761457d61583c565b6020026020010151600e60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550836001815181106145be576145be61583c565b602090810291909101810151600f819055600d54600e54604080513381526001600160a01b039384169581019590955291169083015260608201527f02ab4b3fc023109c2d0da394bda239166c833f63c42b71b67ed4b836dca0ddfe9060800160405180910390a160405146907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f9061465990600890615c62565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018290523060a082015260c00160408051808303601f1901815291905280516020909101206010555050600b5460ff169695505050505050565b60005b60065481101561474557816001600160a01b0316600682815481106147135761471361583c565b6000918252602090912001546001600160a01b0316141561473357614745565b8061473d81615b40565b9150506146ec565b600654811415610df957600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0384166001600160a01b03199091161790555050565b6001600160a01b0381166000908152600560205260409020805460ff161580156147d157508054610100900460ff16155b15610df95760005b60065481101561483257826001600160a01b0316600682815481106148005761480061583c565b6000918252602090912001546001600160a01b0316141561482057614832565b8061482a81615b40565b9150506147d9565b600654811015613918576006805461484c90600190615cfe565b8154811061485c5761485c61583c565b600091825260209091200154600680546001600160a01b0390921691839081106148885761488861583c565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060068054806148c7576148c7615d15565b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b6000610e1c8284615d2b565b6000610e1c8284615d4a565b6000610e1c8284615cfe565b6040516001600160a01b03831660248201526044810182905261391890849063a9059cbb60e01b906064016140e7565b60005b6006548110156149a857600060056000600684815481106149685761496861583c565b60009182526020808320909101546001600160a01b031683528201929092526040019020805461ffff1916905550806149a081615b40565b915050614945565b506149b560066000614d0c565b6040805142815243602082015233917f712bc71db81927a76b8bf1ea346247bb0ad58f18e4e5c1bd4aa0ec6573e02a2b910160405180910390a2565b6040516001600160a01b03808516602483015283166044820152606481018290526130959085906323b872dd60e01b906084016140e7565b6000614a7e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614afb9092919063ffffffff16565b8051909150156139185780806020019051810190614a9c9190615d6c565b6139185760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610bb8565b6060614b0a8484600085614b12565b949350505050565b606082471015614b735760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610bb8565b600080866001600160a01b03168587604051614b8f9190615d89565b60006040518083038185875af1925050503d8060008114614bcc576040519150601f19603f3d011682016040523d82523d6000602084013e614bd1565b606091505b5091509150614be287838387614bed565b979650505050505050565b60608315614c59578251614c52576001600160a01b0385163b614c525760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610bb8565b5081614b0a565b614b0a8383815115614c6e5781518083602001fd5b8060405162461bcd60e51b8152600401610bb89190614da9565b828054614c94906155fc565b90600052602060002090601f016020900481019282614cb65760008555614cfc565b82601f10614ccf57805160ff1916838001178555614cfc565b82800160010185558215614cfc579182015b82811115614cfc578251825591602001919060010190614ce1565b50614d08929150614d26565b5090565b5080546000825590600052602060002090810190610f3f91905b5b80821115614d085760008155600101614d27565b6001600160a01b0381168114610f3f57600080fd5b8035614d5b81614d3b565b919050565b600060208284031215614d7257600080fd5b8135610e1c81614d3b565b60005b83811015614d98578181015183820152602001614d80565b838111156130955750506000910152565b6020815260008251806020840152614dc8816040850160208701614d7d565b601f01601f19169190910160400192915050565b60008060408385031215614def57600080fd5b8235614dfa81614d3b565b946020939093013593505050565b8015158114610f3f57600080fd5b600080600080600060a08688031215614e2e57600080fd5b8535614e3981614d3b565b945060208601359350604086013592506060860135614e5781614e08565b91506080860135614e6781614d3b565b809150509295509295909350565b600060c08284031215614e8757600080fd5b50919050565b60008060408385031215614ea057600080fd5b82356001600160401b03811115614eb657600080fd5b614ec285828601614e75565b9250506020830135614ed381614d3b565b809150509250929050565b600080600060608486031215614ef357600080fd5b8335614efe81614d3b565b92506020840135614f0e81614d3b565b929592945050506040919091013590565b60006101008284031215614e8757600080fd5b60008060408385031215614f4557600080fd5b8235915060208301356001600160401b03811115614f6257600080fd5b614f6e85828601614f1f565b9150509250929050565b600060208284031215614f8a57600080fd5b5035919050565b600081518084526020808501945080840160005b83811015614fca5781516001600160a01b031687529582019590820190600101614fa5565b509495945050505050565b602081526000610e1c6020830184614f91565b60008060008084860360c0811215614fff57600080fd5b853561500a81614d3b565b94506020860135935060408601356001600160401b0381111561502c57600080fd5b61503888828901614f1f565b9350506060605f198201121561504d57600080fd5b509295919450926060019150565b602080825282518282018190526000919060409081850190868401855b828110156150a657815180516001600160a01b03168552860151868501529284019290850190600101615078565b5091979650505050505050565b60008083601f8401126150c557600080fd5b5081356001600160401b038111156150dc57600080fd5b6020830191508360208285010111156150f457600080fd5b9250929050565b60008060008060008060008060008060c08b8d03121561511a57600080fd5b8a35995060208b01356001600160401b038082111561513857600080fd5b6151448e838f016150b3565b909b50995060408d013591508082111561515d57600080fd5b6151698e838f016150b3565b909950975060608d013591508082111561518257600080fd5b61518e8e838f016150b3565b909750955060808d01359150808211156151a757600080fd5b506151b48d828e016150b3565b90945092506151c7905060a08c01614d50565b90509295989b9194979a5092959850565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715615216576152166151d8565b604052919050565b60006001600160401b03821115615237576152376151d8565b5060051b60200190565b600082601f83011261525257600080fd5b813560206152676152628361521e565b6151ee565b82815260059290921b8401810191818101908684111561528657600080fd5b8286015b848110156152a1578035835291830191830161528a565b509695505050505050565b6000806000606084860312156152c157600080fd5b83356152cc81614d3b565b92506020848101356001600160401b03808211156152e957600080fd5b818701915087601f8301126152fd57600080fd5b813561530b6152628261521e565b81815260059190911b8301840190848101908a83111561532a57600080fd5b938501935b8285101561535157843561534281614d3b565b8252938501939085019061532f565b96505050604087013592508083111561536957600080fd5b505061537786828701615241565b9150509250925092565b60008082840360c081121561539557600080fd5b83356001600160401b038111156153ab57600080fd5b6153b786828701614e75565b93505060a0601f19820112156153cc57600080fd5b506020830190509250929050565b600080602083850312156153ed57600080fd5b82356001600160401b0381111561540357600080fd5b61540f858286016150b3565b90969095509350505050565b60008083601f84011261542d57600080fd5b5081356001600160401b0381111561544457600080fd5b6020830191508360208260051b85010111156150f457600080fd5b60008060008060008060008060008060a08b8d03121561547e57600080fd5b8a356001600160401b038082111561549557600080fd5b6154a18e838f0161541b565b909c509a5060208d01359150808211156154ba57600080fd5b6154c68e838f0161541b565b909a50985060408d01359150808211156154df57600080fd5b6154eb8e838f0161541b565b909850965060608d013591508082111561550457600080fd5b6155108e838f0161541b565b909650945060808d013591508082111561552957600080fd5b506155368d828e0161541b565b915080935050809150509295989b9194979a5092959850565b803560ff81168114614d5b57600080fd5b600080600080600080600060e0888a03121561557b57600080fd5b873561558681614d3b565b9650602088013561559681614d3b565b955060408801359450606088013593506155b26080890161554f565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156155e157600080fd5b82356155ec81614d3b565b91506020830135614ed381614d3b565b600181811c9082168061561057607f821691505b60208210811415614e8757634e487b7160e01b600052602260045260246000fd5b60006080828403121561564357600080fd5b604051608081018181106001600160401b0382111715615665576156656151d8565b604052825161567381614e08565b8152602083015161568381614e08565b6020820152604083015161569681614e08565b604082015260608301516156a981614e08565b60608201529392505050565b6000602082840312156156c757600080fd5b8151610e1c81614d3b565b6020808252818101527f455243323054656d706c6174653a204e4f54204445504c4f59455220524f4c45604082015260600190565b6000823560fe1983360301811261571d57600080fd5b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561575057615750615727565b500190565b838152818360208301376000910160200190815292915050565b60008351615781818460208801614d7d565b9190910191825250602001919050565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8b815260e0602082015260006157e460e083018c8e6157a1565b82810360408401526157f7818b8d6157a1565b9050828103606084015261580c81898b6157a1565b905082810360808401526158218187896157a1565b60a0840195909552505060c001529998505050505050505050565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03841681526060602080830182905260009161587790840186614f91565b838103604085015284518082528286019183019060005b818110156158aa5783518352928401929184019160010161588e565b509098975050505050505050565b6000602082840312156158ca57600080fd5b5051919050565b6000806000806000806000806000806000806101808d8f0312156158f457600080fd5b8c516158ff81614d3b565b60208e0151909c5061591081614d3b565b60408e015160608f0151919c509a5061592881614d3b565b8099505060808d0151975060a08d0151965060c08d015161594881614e08565b8096505060e08d015194506101008d015193506101208d015192506101408d015191506101608d015161597a81614e08565b809150509295989b509295989b509295989b565b600080600080608085870312156159a457600080fd5b505082516020840151604085015160609095015191969095509092509050565b8381526040602082015260006159de6040830184866157a1565b95945050505050565b60006001600160401b03831115615a0057615a006151d8565b615a13601f8401601f19166020016151ee565b9050828152838383011115615a2757600080fd5b828260208301376000602084830101529392505050565b6000615a4c6152628461521e565b80848252602080830192508560051b850136811115615a6a57600080fd5b855b81811015615ab95780356001600160401b03811115615a8b5760008081fd5b870136601f820112615a9d5760008081fd5b615aab3682358684016159e7565b865250938201938201615a6c565b50919695505050505050565b6000615ad36152628461521e565b80848252602080830192508560051b850136811115615af157600080fd5b855b81811015615ab95780356001600160401b03811115615b125760008081fd5b870136601f820112615b245760008081fd5b615b323682358684016159e7565b865250938201938201615af3565b6000600019821415615b5457615b54615727565b5060010190565b6000808335601e19843603018112615b7257600080fd5b8301803591506001600160401b03821115615b8c57600080fd5b6020019150368190038213156150f457600080fd5b858782376bffffffffffffffffffffffff19606095861b8116969091019586529290931b909116601484015260288301526048820152606801919050565b600060208284031215615bf157600080fd5b610e1c8261554f565b87815260c060208201526000615c1460c08301888a6157a1565b905060ff861660408301528460608301528360808301528260a083015298975050505050505050565b600060ff821660ff84168060ff03821115615c5a57615c5a615727565b019392505050565b600080835481600182811c915080831680615c7e57607f831692505b6020808410821415615c9e57634e487b7160e01b86526022600452602486fd5b818015615cb25760018114615cc357615cf0565b60ff19861689528489019650615cf0565b60008a81526020902060005b86811015615ce85781548b820152908501908301615ccf565b505084890196505b509498975050505050505050565b600082821015615d1057615d10615727565b500390565b634e487b7160e01b600052603160045260246000fd5b6000816000190483118215151615615d4557615d45615727565b500290565b600082615d6757634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215615d7e57600080fd5b8151610e1c81614e08565b6000825161571d818460208701614d7d56fea2646970667358221220bf52b5eda921e140e9803792fdcdd952604999ceff806d4b0e2b60f5cd3a6f5964736f6c634300080c0033