Overview ERC20
PRICE
$0.065178 @ 0.0000000001531 ETH (-5.43%)

ON-CHAIN MARKET CAP $217,510.86

Total Supply:
420,000,000,000.00 BADCAT

Holders:
53,467
Profile Summary
Blockchain:
Base (8453)


Decimals:
9
Contract Source Code Verified (Partial Match)
Contract Name:
BADCAT

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Created At:
Mon, 20 May 2024 21:21:17 GMT
BADCAT.sol
BADCAT.sol
BADCAT.sol


Contract ABI
[
  {
    "inputs": [],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "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": false,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      }
    ],
    "name": "TradingEnabled",
    "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"
  },
  {
    "inputs": [],
    "name": "_minTokenAmount",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "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": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_liquidity_receiver",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_marketing_receiver",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_development_receiver",
        "type": "address"
      }
    ],
    "name": "changeReceiverAddresses",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_swapThreshold",
        "type": "uint256"
      }
    ],
    "name": "changeSwapthreshold",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "decimals",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "enableTrading",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getMaxTransferAmount",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getMaxTxAmount",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getMaxWalletTokenAmount",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getOwner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "isFeeExempt",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "isOwner",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "pair",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "sellFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "maxTxAmount",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "maxTransferAmount",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "maxWalletToken",
        "type": "uint256"
      }
    ],
    "name": "setLimits",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "newMinTokenAmount",
        "type": "uint256"
      }
    ],
    "name": "setMinTokenAmountForSwap",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_liquidity",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_marketing",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_development",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_total",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_sell",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_trans",
        "type": "uint256"
      }
    ],
    "name": "setTaxes",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_address",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "_enabled",
        "type": "bool"
      }
    ],
    "name": "setisfeeExempt",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "swapThreshold",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "tradingStartTime",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transfer",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "transferFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address payable",
        "name": "adr",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "withdrawAllETH",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "tokenAddress",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      }
    ],
    "name": "withdrawAllTokens",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "stateMutability": "payable",
    "type": "receive"
  }
]


Contract Creation Code
6080604052620000126009600a620004bb565b62000023906461c9f36800620004d2565b600155620000346009600a620004bb565b6200004490633e95ba81620004d2565b600255620000556009600a620004bb565b6200006590633e95ba81620004d2565b600355620000766009600a620004bb565b6200008690633e95ba81620004d2565b6004556009805460ff60a01b191690555f600a818155610bb8600b819055600c839055600d819055600e55600f9190915561271060108190556011805460ff19166001908117909155549091620000de9190620004d2565b620000ea9190620004ec565b601455620186a0600154600a620001029190620004d2565b6200010e9190620004ec565b60155560188054734236e6a50b7c093c5c7efae5b4caadf084156c156001600160a01b0319918216811790925560198054821683179055601a805490911690911790553480156200015d575f80fd5b505f80546001600160a01b031916331781556040805163c45a015560e01b81529051734752ba5dbc23f44d87826276bf6fd6b1c372ad249291839163c45a0155916004808201926020929091908290030181865afa158015620001c2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e891906200050c565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000234573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025a91906200050c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002a5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002cb91906200050c565b600880546001600160a01b038581166001600160a01b031992831617909255600980548484169216919091179055305f908152600760209081526040808320805460ff199081166001908117909255601a5486168552828520805482168317905560195486168552828520805482168317905560185490951684528184208054861682179055338085528285208054909616821790955554600583528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000534565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200040057815f1904821115620003e457620003e4620003ac565b80851615620003f257918102915b93841c9390800290620003c5565b509250929050565b5f826200041857506001620004b5565b816200042657505f620004b5565b81600181146200043f57600281146200044a576200046a565b6001915050620004b5565b60ff8411156200045e576200045e620003ac565b50506001821b620004b5565b5060208310610133831016604e8410600b84101617156200048f575081810a620004b5565b6200049b8383620003c0565b805f1904821115620004b157620004b1620003ac565b0290505b92915050565b5f620004cb60ff84168362000408565b9392505050565b8082028115828204841417620004b557620004b5620003ac565b5f826200050757634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156200051d575f80fd5b81516001600160a01b0381168114620004cb575f80fd5b6123ac80620005425f395ff3fe6080604052600436106101de575f3560e01c806370b7b80c116100fd578063a8aa1b3111610092578063dac9853e11610062578063dac9853e14610534578063dd62ed3e14610553578063f036452a14610597578063f2fde38b146105ab575f80fd5b8063a8aa1b31146104c2578063a9059cbb146104e1578063acb2ad6f14610500578063d37e917714610515575f80fd5b80638a8c523c116100cd5780638a8c523c1461047b57806390386bbf1461048f57806395d89b41146102325780639abba4e6146104a3575f80fd5b806370b7b80c1461040357806381f876441461041857806383ddf8281461042c578063893d20e81461044b575f80fd5b80632b14ca56116101735780633f4218e0116101435780633f4218e01461036e57806350f760e91461039c5780636d8b0527146103bb57806370a08231146103cf575f80fd5b80632b14ca56146102fc5780632f54bf6e14610311578063313ce5671461033e57806338ffa79814610359575f80fd5b806318160ddd116101ae57806318160ddd14610295578063189ae5f2146102a95780631df4ccfc146102c857806323b872dd146102dd575f80fd5b80630445b667146101e957806304d4c9901461021157806306fdde0314610232578063095ea7b314610266575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b506101fe60145481565b6040519081526020015b60405180910390f35b34801561021c575f80fd5b5061023061022b366004611ebc565b6105ca565b005b34801561023d575f80fd5b50604080518082018252600681526510905110d05560d21b602082015290516102089190611efb565b348015610271575f80fd5b50610285610280366004611f5a565b610766565b6040519015158152602001610208565b3480156102a0575f80fd5b506101fe61077c565b3480156102b4575f80fd5b506102306102c3366004611f84565b6107b8565b3480156102d3575f80fd5b506101fe600d5481565b3480156102e8575f80fd5b506102856102f7366004611fad565b610a16565b348015610307575f80fd5b506101fe600e5481565b34801561031c575f80fd5b5061028561032b366004611feb565b5f546001600160a01b0391821691161490565b348015610349575f80fd5b5060405160098152602001610208565b348015610364575f80fd5b506101fe60155481565b348015610379575f80fd5b50610285610388366004611feb565b60076020525f908152604090205460ff1681565b3480156103a7575f80fd5b506102306103b6366004612006565b610a7e565b3480156103c6575f80fd5b506002546101fe565b3480156103da575f80fd5b506101fe6103e9366004611feb565b6001600160a01b03165f9081526005602052604090205490565b34801561040e575f80fd5b506101fe60165481565b348015610423575f80fd5b506004546101fe565b348015610437575f80fd5b5061023061044636600461203d565b610ce4565b348015610456575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610208565b348015610486575f80fd5b50610230610d4c565b34801561049a575f80fd5b50610230610e2c565b3480156104ae575f80fd5b506102306104bd366004612085565b610ed2565b3480156104cd575f80fd5b50600954610463906001600160a01b031681565b3480156104ec575f80fd5b506102856104fb366004611f5a565b610f74565b34801561050b575f80fd5b506101fe600f5481565b348015610520575f80fd5b5061023061052f3660046120a9565b610f80565b34801561053f575f80fd5b5061023061054e366004612085565b610fd3565b34801561055e575f80fd5b506101fe61056d366004612006565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b3480156105a2575f80fd5b506003546101fe565b3480156105b6575f80fd5b506102306105c5366004611feb565b61107b565b5f546001600160a01b031633146105fc5760405162461bcd60e51b81526004016105f3906120d5565b60405180910390fd5b600a869055600b859055600c849055600d839055600e829055600f8190556010546106359060039061062f9060646110f7565b90611102565b600d5411156106865760405162461bcd60e51b815260206004820152601a60248201527f546f74616c206665652063616e6e6f742065786365656420332500000000000060448201526064016105f3565b6106a1600361062f60646010546110f790919063ffffffff16565b600e5411156106f25760405162461bcd60e51b815260206004820152601960248201527f53656c6c206665652063616e6e6f74206578636565642033250000000000000060448201526064016105f3565b61070d600361062f60646010546110f790919063ffffffff16565b600f54111561075e5760405162461bcd60e51b815260206004820152601a60248201527f546f74616c206665652063616e6e6f742065786365656420332500000000000060448201526064016105f3565b505050505050565b5f61077233848461110d565b5060015b92915050565b5f80805260056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc546001546107b391611230565b905090565b5f546001600160a01b031633146107e15760405162461bcd60e51b81526004016105f3906120d5565b5f6107fb6127106107f5601961062f61077c565b906110f7565b90508061080a6009600a6121e9565b61081490866121f7565b10156108965760405162461bcd60e51b8152602060048201526044602482018190527f4d6178207472616e73616374696f6e206c696d69742063616e6e6f7420626520908201527f6c6f776572207468616e20302e323525206f662074686520746f74616c20737560648201526370706c7960e01b608482015260a4016105f3565b806108a36009600a6121e9565b6108ad90856121f7565b101561092b5760405162461bcd60e51b815260206004820152604160248201527f4d6178207472616e73666572206c696d69742063616e6e6f74206265206c6f7760448201527f6572207468616e20302e323525206f662074686520746f74616c20737570706c6064820152607960f81b608482015260a4016105f3565b806109386009600a6121e9565b61094290846121f7565b10156109c55760405162461bcd60e51b815260206004820152604660248201527f4d61782077616c6c657420746f6b656e20616d6f756e742063616e6e6f74206260448201527f65206c6f776572207468616e20302e323525206f662074686520746f74616c20606482015265737570706c7960d01b608482015260a4016105f3565b6109d16009600a6121e9565b6109db90856121f7565b6002556109ea6009600a6121e9565b6109f490846121f7565b600355610a036009600a6121e9565b610a0d90836121f7565b60045550505050565b5f610a2284848461123b565b610a738433610a6e8560405180606001604052806028815260200161234f602891396001600160a01b038a165f9081526006602090815260408083203384529091529020549190611365565b61110d565b5060015b9392505050565b5f546001600160a01b03163314610aa75760405162461bcd60e51b81526004016105f3906120d5565b6001600160a01b038216610b0e5760405162461bcd60e51b815260206004820152602860248201527f546f6b656e20616464726573732063616e6e6f7420626520746865207a65726f604482015267206164647265737360c01b60648201526084016105f3565b6001600160a01b038116610b7a5760405162461bcd60e51b815260206004820152602d60248201527f5769746864726177616c20616464726573732063616e6e6f742062652074686560448201526c207a65726f206164647265737360981b60648201526084016105f3565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015610bbe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be2919061220e565b90505f8111610c2b5760405162461bcd60e51b81526020600482015260156024820152744e6f20746f6b656e7320746f20776974686472617760581b60448201526064016105f3565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af1158015610c77573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9b9190612225565b610cdf5760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b60448201526064016105f3565b505050565b5f546001600160a01b03163314610d0d5760405162461bcd60e51b81526004016105f3906120d5565b601a80546001600160a01b039485166001600160a01b031991821617909155601980549385169382169390931790925560188054919093169116179055565b5f546001600160a01b03163314610d755760405162461bcd60e51b81526004016105f3906120d5565b600954600160a01b900460ff1615610dcf5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016105f3565b6009805460ff60a01b1916600160a01b179055426016819055610df490603c90612240565b6017556040514281527fb3da2db3dfc3778f99852546c6e9ab39ec253f9de7b0847afec61bd27878e9239060200160405180910390a1565b5f546001600160a01b03163314610e555760405162461bcd60e51b81526004016105f3906120d5565b4780610e985760405162461bcd60e51b81526020600482015260126024820152714e6f2045544820746f20776974686472617760701b60448201526064016105f3565b5f80546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610ece573d5f803e3d5ffd5b5050565b5f546001600160a01b03163314610efb5760405162461bcd60e51b81526004016105f3906120d5565b5f8111610f585760405162461bcd60e51b815260206004820152602560248201527f53776170207468726573686f6c64206d75737420626520677265617465722074604482015264068616e20360dc1b60648201526084016105f3565b610f646009600a6121e9565b610f6e90826121f7565b60145550565b5f61077233848461123b565b5f546001600160a01b03163314610fa95760405162461bcd60e51b81526004016105f3906120d5565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610ffc5760405162461bcd60e51b81526004016105f3906120d5565b5f811161105f5760405162461bcd60e51b815260206004820152602b60248201527f4d696e696d756d20746f6b656e20616d6f756e74206d7573742062652067726560448201526a061746572207468616e20360ac1b60648201526084016105f3565b61106b6009600a6121e9565b61107590826121f7565b60155550565b5f546001600160a01b031633146110a45760405162461bcd60e51b81526004016105f3906120d5565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b5f610a778284612253565b5f610a7782846121f7565b6001600160a01b03831661116f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105f3565b6001600160a01b0382166111d05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105f3565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610a778284612240565b611246838383611390565b61124e611538565b6112588383611635565b6112638383836116c4565b61126d83836117ad565b611278838383611802565b61128383838361192b565b6001600160a01b0383165f908152600560205260409020546112a59082611230565b6001600160a01b0384165f908152600560205260408120919091556112ca848461194f565b6112d457816112df565b6112df848484611993565b6001600160a01b0384165f908152600560205260409020549091506113049082611a4e565b6001600160a01b038085165f8181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113579085815260200190565b60405180910390a350505050565b5f81848411156113885760405162461bcd60e51b81526004016105f39190611efb565b505050900390565b6001600160a01b0383166113f45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105f3565b6001600160a01b0382166114565760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105f3565b5f81116114b75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105f3565b6001600160a01b0383165f90815260056020526040902054811115610cdf5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016105f3565b60175461154690603c612272565b42101561154f57565b4260178190556016545f916115649190612240565b9050603c811015611590575f600a819055610bb8600b819055600c829055600d819055600e55600f5550565b61012c8110156115bc575f600a8190556107d0600b819055600c829055600d55610bb8600e55600f5550565b6102588110156115e8575f600a8190556103e8600b819055600c829055600d556107d0600e55600f5550565b610384811015611614575f600a8190556101f4600b819055600c829055600d556107d0600e55600f5550565b5f600a8190556001600b55600c819055600d819055600e819055600f555b50565b6001600160a01b0382165f9081526007602052604090205460ff1615801561167557506001600160a01b0381165f9081526007602052604090205460ff16155b15610ece57600954600160a01b900460ff16610ece5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016105f3565b6001600160a01b0383165f9081526007602052604090205460ff1615801561170457506001600160a01b0382165f9081526007602052604090205460ff16155b801561171e57506009546001600160a01b03838116911614155b801561173557506001600160a01b03821661dead14155b15610cdf576004546001600160a01b0383165f9081526005602052604090205461175f9083611a4e565b1115610cdf5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016105f3565b6009546001600160a01b0382811691161480156117e257506001600160a01b0382165f9081526007602052604090205460ff16155b15610ece57600160125f8282546117f99190612272565b90915550505050565b6009546001600160a01b038481169116146118a1576003548111158061183f57506001600160a01b0383165f9081526007602052604090205460ff165b8061186157506001600160a01b0382165f9081526007602052604090205460ff165b6118a15760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105f3565b600254811115806118c957506001600160a01b0383165f9081526007602052604090205460ff165b806118eb57506001600160a01b0382165f9081526007602052604090205460ff165b610cdf5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105f3565b611936838383611a59565b15610cdf57611946601454611b09565b5f601255505050565b6001600160a01b0382165f9081526007602052604081205460ff16158015610a775750506001600160a01b03165f9081526007602052604090205460ff1615919050565b5f8061199f8585611c79565b1115611a47575f6119c16119b38686611c79565b60105461062f9086906110f7565b305f908152600560205260409020549091506119dd9082611a4e565b305f81815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a2d9085815260200190565b60405180910390a3611a3f8382611230565b915050610a77565b5092915050565b5f610a778284612272565b601554601454305f9081526005602052604081205460135491938510159211159060ff16158015611a8c575060115460ff165b8015611aa15750600954600160a01b900460ff165b8015611aaa5750815b8015611ace57506001600160a01b0386165f9081526007602052604090205460ff16155b8015611ae757506009546001600160a01b038681169116145b8015611af65750600160125410155b8015611aff5750805b9695505050505050565b6013805460ff19166001908117909155600c54600b54600a545f93611b429360029361062f939192611b3c928391611a4e565b90611a4e565b90505f611b5e826107f5600a548661110290919063ffffffff16565b90505f611b6b8483611230565b905047611b7782611cc3565b5f611b824783611230565b90505f611ba4611b9d600a548861123090919063ffffffff16565b83906110f7565b90505f611bbc600a548361110290919063ffffffff16565b90508015611bce57611bce8682611e0b565b600b545f90611be29061062f856002611102565b90508015611c23576019546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611c21573d5f803e3d5ffd5b505b478015611c63576018546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611c61573d5f803e3d5ffd5b505b50506013805460ff191690555050505050505050565b6009545f906001600160a01b0390811690831603611c9a5750600e54610776565b6009546001600160a01b0390811690841603611cb95750600d54610776565b50600f5492915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611cf657611cf6612285565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d719190612299565b81600181518110611d8457611d84612285565b6001600160a01b039283166020918202929092010152600854611daa913091168461110d565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac94790611de29085905f908690309042906004016122b4565b5f604051808303815f87803b158015611df9575f80fd5b505af115801561075e573d5f803e3d5ffd5b600854611e239030906001600160a01b03168461110d565b600854601a5460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611e90573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611eb59190612323565b5050505050565b5f805f805f8060c08789031215611ed1575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f6020808352835180828501525f5b81811015611f2657858101830151858201604001528201611f0a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611632575f80fd5b5f8060408385031215611f6b575f80fd5b8235611f7681611f46565b946020939093013593505050565b5f805f60608486031215611f96575f80fd5b505081359360208301359350604090920135919050565b5f805f60608486031215611fbf575f80fd5b8335611fca81611f46565b92506020840135611fda81611f46565b929592945050506040919091013590565b5f60208284031215611ffb575f80fd5b8135610a7781611f46565b5f8060408385031215612017575f80fd5b823561202281611f46565b9150602083013561203281611f46565b809150509250929050565b5f805f6060848603121561204f575f80fd5b833561205a81611f46565b9250602084013561206a81611f46565b9150604084013561207a81611f46565b809150509250925092565b5f60208284031215612095575f80fd5b5035919050565b8015158114611632575f80fd5b5f80604083850312156120ba575f80fd5b82356120c581611f46565b915060208301356120328161209c565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561214357815f1904821115612129576121296120f5565b8085161561213657918102915b93841c939080029061210e565b509250929050565b5f8261215957506001610776565b8161216557505f610776565b816001811461217b5760028114612185576121a1565b6001915050610776565b60ff841115612196576121966120f5565b50506001821b610776565b5060208310610133831016604e8410600b84101617156121c4575081810a610776565b6121ce8383612109565b805f19048211156121e1576121e16120f5565b029392505050565b5f610a7760ff84168361214b565b8082028115828204841417610776576107766120f5565b5f6020828403121561221e575f80fd5b5051919050565b5f60208284031215612235575f80fd5b8151610a778161209c565b81810381811115610776576107766120f5565b5f8261226d57634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610776576107766120f5565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156122a9575f80fd5b8151610a7781611f46565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156123025784516001600160a01b0316835293830193918301916001016122dd565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612335575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122057987a1b669b2f092295e495c44e5cb01713a3a821b16c743b3fb1e91c9354a664736f6c63430008150033