ETH Price: $2,942.33 (-6.02%)
Gas: 8 Gwei

Token

MeGods (MeGods)
 

Overview

Max Total Supply

500,000,000,000 MeGods

Holders

301

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.705806697629940371 MeGods

Value
$0.00
0x07a4e03f3d69c8f38912378ae4155fa3fc37f947
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
MeGods

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : MeGods.sol
//SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}

function _msgData() internal view virtual returns (bytes calldata) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}

interface IERC20 {
function totalSupply() external view returns (uint256);

function balanceOf(address account) external view returns (uint256);

function transfer(address recipient, uint256 amount) external returns (bool);

function allowance(address owner, address spender) external view returns (uint256);

function approve(address spender, uint256 amount) external returns (bool);

function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);

event Transfer(address indexed from, address indexed to, uint256 value);

event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
/**
* @dev Returns the name of the token.
*/
function name() external view returns (string memory);

/**
* @dev Returns the symbol of the token.
*/
function symbol() external view returns (string memory);

/**
* @dev Returns the decimals places of the token.
*/
function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) internal _balances;

mapping(address => mapping(address => uint256)) internal _allowances;

uint256 private _totalSupply;

string private _name;
string private _symbol;

/**
* @dev Sets the values for {name} and {symbol}.
*
* The defaut value of {decimals} is 18. To select a different value for
* {decimals} you should overload it.
*
* All two of these values are immutable: they can only be set once during
* construction.
*/
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}

/**
* @dev Returns the name of the token.
*/
function name() public view virtual override returns (string memory) {
return _name;
}

/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public view virtual override returns (string memory) {
return _symbol;
}

/**
* @dev Returns the number of decimals used to get its user representation.
* For example, if `decimals` equals `2`, a balance of `505` tokens should
* be displayed to a user as `5,05` (`505 / 10 ** 2`).
*
* Tokens usually opt for a value of 18, imitating the relationship between
* Ether and Wei. This is the value {ERC20} uses, unless this function is
* overridden;
*
* NOTE: This information is only used for _display_ purposes: it in
* no way affects any of the arithmetic of the contract, including
* {IERC20-balanceOf} and {IERC20-transfer}.
*/
function decimals() public view virtual override returns (uint8) {
return 18;
}

/**
* @dev See {IERC20-totalSupply}.
*/
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}

/**
* @dev See {IERC20-balanceOf}.
*/
function balanceOf(address account) public view virtual override returns (uint256) {
return _balances[account];
}

/**
* @dev See {IERC20-transfer}.
*
* Requirements:
*
* - `recipient` cannot be the zero address.
* - the caller must have a balance of at least `amount`.
*/
function transfer(address recipient, uint256 amount)
public
virtual
override
returns (bool)
{
_transfer(_msgSender(), recipient, amount);
return true;
}

/**
* @dev See {IERC20-allowance}.
*/
function allowance(address owner, address spender)
public
view
virtual
override
returns (uint256)
{
return _allowances[owner][spender];
}

/**
* @dev See {IERC20-approve}.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function approve(address spender, uint256 amount) public virtual override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}

/**
* @dev See {IERC20-transferFrom}.
*
* Emits an {Approval} event indicating the updated allowance. This is not
* required by the EIP. See the note at the beginning of {ERC20}.
*
* Requirements:
*
* - `sender` and `recipient` cannot be the zero address.
* - `sender` must have a balance of at least `amount`.
* - the caller must have allowance for ``sender``'s tokens of at least
* `amount`.
*/
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
_transfer(sender, recipient, amount);

uint256 currentAllowance = _allowances[sender][_msgSender()];
require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
_approve(sender, _msgSender(), currentAllowance - amount);

return true;
}

/**
* @dev Atomically increases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function increaseAllowance(address spender, uint256 addedValue)
public
virtual
returns (bool)
{
_approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
return true;
}

/**
* @dev Atomically decreases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
* - `spender` must have allowance for the caller of at least
* `subtractedValue`.
*/
function decreaseAllowance(address spender, uint256 subtractedValue)
public
virtual
returns (bool)
{
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
_approve(_msgSender(), spender, currentAllowance - subtractedValue);

return true;
}

/**
* @dev Moves tokens `amount` from `sender` to `recipient`.
*
* This is internal function is equivalent to {transfer}, and can be used to
* e.g. implement automatic token fees, slashing mechanisms, etc.
*
* Emits a {Transfer} event.
*
* Requirements:
*
* - `sender` cannot be the zero address.
* - `recipient` cannot be the zero address.
* - `sender` must have a balance of at least `amount`.
*/
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");

_beforeTokenTransfer(sender, recipient, amount);

uint256 senderBalance = _balances[sender];
require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
_balances[sender] = senderBalance - amount;
_balances[recipient] += amount;

emit Transfer(sender, recipient, amount);
}

/** @dev Creates `amount` tokens and assigns them to `account`, increasing
* the total supply.
*
* Emits a {Transfer} event with `from` set to the zero address.
*
* Requirements:
*
* - `to` cannot be the zero address.
*/
function _tokengeneration(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: generation to the zero address");

_beforeTokenTransfer(address(0), account, amount);

_totalSupply = amount;
_balances[account] = amount;
emit Transfer(address(0), account, amount);
}

/**
* @dev Destroys `amount` tokens from `account`, reducing the
* total supply.
*
* Emits a {Transfer} event with `to` set to the zero address.
*
* Requirements:
*
* - `account` cannot be the zero address.
* - `account` must have at least `amount` tokens.
*/
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");

_beforeTokenTransfer(account, address(0), amount);

uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
_balances[account] = accountBalance - amount;
_totalSupply -= amount;

emit Transfer(account, address(0), amount);
}

/**
* @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
*
* This internal function is equivalent to `approve`, and can be used to
* e.g. set automatic allowances for certain subsystems, etc.
*
* Emits an {Approval} event.
*
* Requirements:
*
* - `owner` cannot be the zero address.
* - `spender` cannot be the zero address.
*/
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");

_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}

/**
* @dev Hook that is called before any transfer of tokens. This includes
* generation and burning.
*
* Calling conditions:
*
* - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* will be to transferred to `to`.
* - when `from` is zero, `amount` tokens will be generated for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens will be burned.
* - `from` and `to` are never both zero.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}

library Address {
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");

(bool success, ) = recipient.call{ value: amount }("");
require(success, "Address: unable to send value, recipient may have reverted");
}
}

abstract contract Ownable is Context {
address private _owner;

event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

constructor() {
_setOwner(_msgSender());
}

function owner() public view virtual returns (address) {
return _owner;
}

modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}

function renounceOwnership() public virtual onlyOwner {
_setOwner(address(0));
}

function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_setOwner(newOwner);
}

function _setOwner(address newOwner) private {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}

interface IFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IRouter {
function factory() external pure returns (address);

function WETH() external pure returns (address);

function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);

function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
}

contract MeGods is ERC20, Ownable {
using Address for address payable;

IRouter public router;
address public pair;

bool private _liquidityMutex = false;
bool public providingLiquidity = false;
bool public tradingEnabled = false;

uint256 public tokenLiquidityThreshold = 500e6 * 10**18; //500,000,000,000

uint256 public genesis_block;
uint256 private deadline = 0;
uint256 private launchtax = 0; //0

address public marketingWallet = 0x4686DdaC37978464b7814610106C03Fa10f91aC9;
address private devWallet = 0x6F4757F99AC1ebF02214f6890ba291Dd475aB585;
address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

// Main Taxes - 0x4686DdaC37978464b7814610106C03Fa10f91aC9 - 1.75% buy / 2.75% sell
// Secondary tax - 0x6F4757F99AC1ebF02214f6890ba291Dd475aB585 - 0.25% Buy / 0.25% sell

struct Taxes {
uint256 marketing;
uint256 nativeTax;
uint256 dev;
uint256 liquidity;
uint256 denominator;
}

Taxes private buytaxes = Taxes(175, 0, 25, 0, 100); //same happening here 100 denominator an buy tax is 1%
Taxes private sellTaxes = Taxes(175, 0, 25, 0, 100); //100 is denominator and total tax is 1%. on buy and sell

uint256 public TotalBuyFee = (buytaxes.marketing + buytaxes.nativeTax + buytaxes.dev + buytaxes.liquidity)/buytaxes.denominator;
uint256 public TotalSellFee = (sellTaxes.marketing + sellTaxes.nativeTax + sellTaxes.dev + sellTaxes.liquidity)/sellTaxes.denominator;

mapping(address => bool) public exemptFee;

modifier mutexLock() {
if (!_liquidityMutex) {
_liquidityMutex = true;
_;
_liquidityMutex = false;
}
}

constructor() ERC20("MeGods", "MeGods") {
_tokengeneration(msg.sender, 500e9 * 10**decimals());

IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //Testnet router 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D UNISWAP V2 ||| // testnet router v 2

// UNISWAP MAINNNET 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

router = _router;
pair = _pair;
exemptFee[address(this)] = true;
exemptFee[msg.sender] = true;
exemptFee[marketingWallet] = true;
exemptFee[devWallet] = true;
exemptFee[deadWallet] = true;

}

function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}

function transferFrom(
address sender,
address recipient,
uint256 amount
) public override returns (bool) {
_transfer(sender, recipient, amount);

uint256 currentAllowance = _allowances[sender][_msgSender()];
require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
_approve(sender, _msgSender(), currentAllowance - amount);

return true;
}

function increaseAllowance(address spender, uint256 addedValue)
public
override
returns (bool)
{
_approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
return true;
}

function decreaseAllowance(address spender, uint256 subtractedValue)
public
override
returns (bool)
{
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
_approve(_msgSender(), spender, currentAllowance - subtractedValue);

return true;
}

function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(msg.sender, recipient, amount);
return true;
}

function _transfer(
address sender,
address recipient,
uint256 amount
) internal override {
require(amount > 0, "Transfer amount must be greater than zero");

if (!exemptFee[sender] && !exemptFee[recipient]) {
require(tradingEnabled, "Trading not enabled");
}

uint256 feeswap;
uint256 feesum;
uint256 fee;
uint256 _taxDenominator = sellTaxes.denominator;
Taxes memory currentTaxes;

bool useLaunchFee = !exemptFee[sender] &&
!exemptFee[recipient] &&
block.number < genesis_block + deadline;

//set fee to zero if fees in contract are handled or exempted
if (_liquidityMutex || exemptFee[sender] || exemptFee[recipient])
fee = 0;

//calculate fee
else if (recipient == pair && !useLaunchFee) {
feeswap = sellTaxes.marketing + sellTaxes.dev + sellTaxes.liquidity;
feesum = feeswap + sellTaxes.nativeTax;
currentTaxes = sellTaxes;
_taxDenominator = sellTaxes.denominator;
} else if (!useLaunchFee) {
feeswap = buytaxes.marketing + buytaxes.dev + buytaxes.liquidity;
feesum = feeswap + buytaxes.nativeTax;
currentTaxes = buytaxes;
_taxDenominator = buytaxes.denominator;
} else if (useLaunchFee) {
feeswap = launchtax;
feesum = launchtax;
}

fee = ((amount * feesum) / 100)/_taxDenominator;

//send fees if threshold has been reached
//don't do this on buys, breaks swap
if (providingLiquidity && sender != pair) handle_fees(feeswap, currentTaxes);

//rest to recipient
super._transfer(sender, recipient, amount - fee);
if (fee > 0) {
//send the fee to the contract
if (feeswap > 0) {
uint256 feeAmount = ((amount * feeswap) / 100)/_taxDenominator;
super._transfer(sender, address(this), feeAmount);
}

if (currentTaxes.nativeTax > 0) {
uint256 nativeTaxAmount = ((currentTaxes.nativeTax * amount) / 100)/_taxDenominator;
_balances[marketingWallet] += nativeTaxAmount;
emit Transfer(sender, marketingWallet, nativeTaxAmount);
}

}
}

function handle_fees(uint256 feeswap, Taxes memory swapTaxes) private mutexLock {

if(feeswap == 0){
return;
}

uint256 contractBalance = balanceOf(address(this));
if (contractBalance >= tokenLiquidityThreshold) {
if (tokenLiquidityThreshold > 1) {
contractBalance = tokenLiquidityThreshold;
}

// Split the contract balance into halves
uint256 denominator = feeswap * 2;
uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) /
denominator;
uint256 toSwap = contractBalance - tokensToAddLiquidityWith;

uint256 initialBalance = address(this).balance;

swapTokensForETH(toSwap);

uint256 deltaBalance = address(this).balance - initialBalance;
uint256 unitBalance = deltaBalance / ((denominator - swapTaxes.liquidity)/swapTaxes.denominator);
uint256 bnbToAddLiquidityWith = (unitBalance * swapTaxes.liquidity)/swapTaxes.denominator;

if (bnbToAddLiquidityWith > 0) {
addLiquidity(tokensToAddLiquidityWith, bnbToAddLiquidityWith);
}

uint256 marketingAmt = (unitBalance * 2 * swapTaxes.marketing)/swapTaxes.denominator;
if (marketingAmt > 0) {
payable(marketingWallet).sendValue(marketingAmt);
}
uint256 devAmt = (unitBalance * 2 * swapTaxes.dev)/swapTaxes.denominator;
if (devAmt > 0) {
payable(devWallet).sendValue(devAmt);
}

}
}

function swapTokensForETH(uint256 tokenAmount) private {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();

_approve(address(this), address(router), tokenAmount);

router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}

function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
_approve(address(this), address(router), tokenAmount);

router.addLiquidityETH{ value: ethAmount }(
address(this),
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
deadWallet,
block.timestamp
);
}

function updateLiquidityProvide(bool state) external onlyOwner{
providingLiquidity = state;
}

function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner {
tokenLiquidityThreshold = new_amount * 10**decimals();
}

function enableTrading() external onlyOwner {
require(!tradingEnabled, "Trading is already enabled");
tradingEnabled = true;
providingLiquidity = true;
genesis_block = block.number;
}

function updatedeadline(uint256 _deadline) external onlyOwner {
require (_deadline < 3,"Deadline should be less than 3");
deadline = _deadline;
}

function updateMarketingWallet(address _newWallet) external onlyOwner {
marketingWallet = _newWallet;
}

function updateDevWallet(address _newWallet) external onlyOwner {
devWallet = _newWallet;
}

function updateExemptFee(address _address, bool state) external onlyOwner {
exemptFee[_address] = state;
}

function bulkExemptFee(address[] memory accounts, bool state) external onlyOwner {
for (uint256 i = 0; i < accounts.length; i++) {
exemptFee[accounts[i]] = state;
}
}

function rescueETH() external {
uint256 contractETHBalance = address(this).balance;
payable(owner()).transfer(contractETHBalance);
}

function rescueBRC20(address tokenAdd, uint256 amount) external {
require(tokenAdd != address(this), "Owner can't claim contract's balance of its own tokens");
IERC20(tokenAdd).transfer(owner(), amount);
}

// fallbacks
receive() external payable {}
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"TotalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TotalSellFee","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":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"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":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueBRC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLiquidityThreshold","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":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600760146101000a81548160ff0219169083151502179055506000600760156101000a81548160ff0219169083151502179055506000600760166101000a81548160ff0219169083151502179055506b019d971e4fe8401e740000006008556000600a556000600b55734686ddac37978464b7814610106c03fa10f91ac9600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736f4757f99ac1ebf02214f6890ba291dd475ab585600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060a0016040528060af81526020016000815260200160198152602001600081526020016064815250600e600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015550506040518060a0016040528060af81526020016000815260200160198152602001600081526020016064815250601360008201518160000155602082015181600101556040820151816002015560608201518160030155608082015181600401555050600e60040154600e60030154600e60020154600e60010154600e60000154620002079190620009db565b620002139190620009db565b6200021f9190620009db565b6200022b919062000a45565b601855601360040154601360030154601360020154601360010154601360000154620002589190620009db565b620002649190620009db565b620002709190620009db565b6200027c919062000a45565b6019553480156200028c57600080fd5b506040518060400160405280600681526020017f4d65476f647300000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f4d65476f6473000000000000000000000000000000000000000000000000000081525081600390816200030a919062000ced565b5080600490816200031c919062000ced565b5050506200033f620003336200078a60201b60201c565b6200079260201b60201c565b6200038033620003546200085860201b60201c565b600a62000362919062000f35565b64746a52880062000374919062000f86565b6200086160201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040d91906200103b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000475573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049b91906200103b565b6040518363ffffffff1660e01b8152600401620004ba9291906200107e565b6020604051808303816000875af1158015620004da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200050091906200103b565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601a6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601a6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601a600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062001182565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008d3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008ca9062001132565b60405180910390fd5b620008e7600083836200099d60201b60201c565b80600281905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000991919062001165565b60405180910390a35050565b505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009e882620009a2565b9150620009f583620009a2565b925082820190508082111562000a105762000a0f620009ac565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000a5282620009a2565b915062000a5f83620009a2565b92508262000a725762000a7162000a16565b5b828204905092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000aff57607f821691505b60208210810362000b155762000b1462000ab7565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b40565b62000b8b868362000b40565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000bce62000bc862000bc284620009a2565b62000ba3565b620009a2565b9050919050565b6000819050919050565b62000bea8362000bad565b62000c0262000bf98262000bd5565b84845462000b4d565b825550505050565b600090565b62000c1962000c0a565b62000c2681848462000bdf565b505050565b5b8181101562000c4e5762000c4260008262000c0f565b60018101905062000c2c565b5050565b601f82111562000c9d5762000c678162000b1b565b62000c728462000b30565b8101602085101562000c82578190505b62000c9a62000c918562000b30565b83018262000c2b565b50505b505050565b600082821c905092915050565b600062000cc26000198460080262000ca2565b1980831691505092915050565b600062000cdd838362000caf565b9150826002028217905092915050565b62000cf88262000a7d565b67ffffffffffffffff81111562000d145762000d1362000a88565b5b62000d20825462000ae6565b62000d2d82828562000c52565b600060209050601f83116001811462000d65576000841562000d50578287015190505b62000d5c858262000ccf565b86555062000dcc565b601f19841662000d758662000b1b565b60005b8281101562000d9f5784890151825560018201915060208501945060208101905062000d78565b8683101562000dbf578489015162000dbb601f89168262000caf565b8355505b6001600288020188555050505b505050505050565b60008160011c9050919050565b6000808291508390505b600185111562000e335780860481111562000e0b5762000e0a620009ac565b5b600185161562000e1b5780820291505b808102905062000e2b8562000dd4565b945062000deb565b94509492505050565b60008262000e4e576001905062000f21565b8162000e5e576000905062000f21565b816001811462000e77576002811462000e825762000eb8565b600191505062000f21565b60ff84111562000e975762000e96620009ac565b5b8360020a91508482111562000eb15762000eb0620009ac565b5b5062000f21565b5060208310610133831016604e8410600b841016171562000ef25782820a90508381111562000eec5762000eeb620009ac565b5b62000f21565b62000f01848484600162000de1565b9250905081840481111562000f1b5762000f1a620009ac565b5b81810290505b9392505050565b600060ff82169050919050565b600062000f4282620009a2565b915062000f4f8362000f28565b925062000f7e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e3c565b905092915050565b600062000f9382620009a2565b915062000fa083620009a2565b925082820262000fb081620009a2565b9150828204841483151762000fca5762000fc9620009ac565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620010038262000fd6565b9050919050565b620010158162000ff6565b81146200102157600080fd5b50565b60008151905062001035816200100a565b92915050565b60006020828403121562001054576200105362000fd1565b5b6000620010648482850162001024565b91505092915050565b620010788162000ff6565b82525050565b60006040820190506200109560008301856200106d565b620010a460208301846200106d565b9392505050565b600082825260208201905092915050565b7f45524332303a2067656e65726174696f6e20746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006200111a602583620010ab565b91506200112782620010bc565b604082019050919050565b600060208201905081810360008301526200114d816200110b565b9050919050565b6200115f81620009a2565b82525050565b60006020820190506200117c600083018462001154565b92915050565b613ee680620011926000396000f3fe6080604052600436106102085760003560e01c806375f0a87411610118578063aacebbe3116100a0578063edaa11681161006f578063edaa116814610766578063ee22c0901461078f578063f2fde38b146107b8578063f887ea40146107e1578063fbe6324e1461080c5761020f565b8063aacebbe314610698578063c5d32bb2146106c1578063dc89f88c146106fe578063dd62ed3e146107295761020f565b80638da5cb5b116100e75780638da5cb5b1461059d57806395d89b41146105c8578063a457c2d7146105f3578063a8aa1b3114610630578063a9059cbb1461065b5761020f565b806375f0a874146105055780637b46eee51461053057806385141a771461055b5780638a8c523c146105865761020f565b806323b872dd1161019b578063395093511161016a578063395093511461042057806342b6fa111461045d5780634ada218b1461048657806370a08231146104b1578063715018a6146104ee5761020f565b806323b872dd14610364578063274a533c146103a1578063313ce567146103cc578063355496ca146103f75761020f565b80631675d802116101d75780631675d802146102ce57806318160ddd146102f95780631816467f1461032457806320800a001461034d5761020f565b806306fdde0314610214578063095ea7b31461023f5780630e375a5c1461027c5780631340538f146102a55761020f565b3661020f57005b600080fd5b34801561022057600080fd5b50610229610837565b6040516102369190612a42565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190612b0c565b6108c9565b6040516102739190612b67565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e9190612cf6565b6108e7565b005b3480156102b157600080fd5b506102cc60048036038101906102c79190612d52565b6109f8565b005b3480156102da57600080fd5b506102e3610a91565b6040516102f09190612d8e565b60405180910390f35b34801561030557600080fd5b5061030e610a97565b60405161031b9190612d8e565b60405180910390f35b34801561033057600080fd5b5061034b60048036038101906103469190612da9565b610aa1565b005b34801561035957600080fd5b50610362610b61565b005b34801561037057600080fd5b5061038b60048036038101906103869190612dd6565b610bb7565b6040516103989190612b67565b60405180910390f35b3480156103ad57600080fd5b506103b6610cb8565b6040516103c39190612d8e565b60405180910390f35b3480156103d857600080fd5b506103e1610cbe565b6040516103ee9190612e45565b60405180910390f35b34801561040357600080fd5b5061041e60048036038101906104199190612e60565b610cc7565b005b34801561042c57600080fd5b5061044760048036038101906104429190612b0c565b610d9e565b6040516104549190612b67565b60405180910390f35b34801561046957600080fd5b50610484600480360381019061047f9190612ea0565b610e4a565b005b34801561049257600080fd5b5061049b610eee565b6040516104a89190612b67565b60405180910390f35b3480156104bd57600080fd5b506104d860048036038101906104d39190612da9565b610f01565b6040516104e59190612d8e565b60405180910390f35b3480156104fa57600080fd5b50610503610f49565b005b34801561051157600080fd5b5061051a610fd1565b6040516105279190612edc565b60405180910390f35b34801561053c57600080fd5b50610545610ff7565b6040516105529190612d8e565b60405180910390f35b34801561056757600080fd5b50610570610ffd565b60405161057d9190612edc565b60405180910390f35b34801561059257600080fd5b5061059b611003565b005b3480156105a957600080fd5b506105b261110e565b6040516105bf9190612edc565b60405180910390f35b3480156105d457600080fd5b506105dd611138565b6040516105ea9190612a42565b60405180910390f35b3480156105ff57600080fd5b5061061a60048036038101906106159190612b0c565b6111ca565b6040516106279190612b67565b60405180910390f35b34801561063c57600080fd5b506106456112be565b6040516106529190612edc565b60405180910390f35b34801561066757600080fd5b50610682600480360381019061067d9190612b0c565b6112e4565b60405161068f9190612b67565b60405180910390f35b3480156106a457600080fd5b506106bf60048036038101906106ba9190612da9565b6112fb565b005b3480156106cd57600080fd5b506106e860048036038101906106e39190612da9565b6113bb565b6040516106f59190612b67565b60405180910390f35b34801561070a57600080fd5b506107136113db565b6040516107209190612d8e565b60405180910390f35b34801561073557600080fd5b50610750600480360381019061074b9190612ef7565b6113e1565b60405161075d9190612d8e565b60405180910390f35b34801561077257600080fd5b5061078d60048036038101906107889190612ea0565b611468565b005b34801561079b57600080fd5b506107b660048036038101906107b19190612b0c565b611531565b005b3480156107c457600080fd5b506107df60048036038101906107da9190612da9565b611629565b005b3480156107ed57600080fd5b506107f6611720565b6040516108039190612f96565b60405180910390f35b34801561081857600080fd5b50610821611746565b60405161082e9190612b67565b60405180910390f35b60606003805461084690612fe0565b80601f016020809104026020016040519081016040528092919081815260200182805461087290612fe0565b80156108bf5780601f10610894576101008083540402835291602001916108bf565b820191906000526020600020905b8154815290600101906020018083116108a257829003601f168201915b5050505050905090565b60006108dd6108d6611759565b8484611761565b6001905092915050565b6108ef611759565b73ffffffffffffffffffffffffffffffffffffffff1661090d61110e565b73ffffffffffffffffffffffffffffffffffffffff1614610963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095a9061305d565b60405180910390fd5b60005b82518110156109f35781601a60008584815181106109875761098661307d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109eb906130db565b915050610966565b505050565b610a00611759565b73ffffffffffffffffffffffffffffffffffffffff16610a1e61110e565b73ffffffffffffffffffffffffffffffffffffffff1614610a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6b9061305d565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b60085481565b6000600254905090565b610aa9611759565b73ffffffffffffffffffffffffffffffffffffffff16610ac761110e565b73ffffffffffffffffffffffffffffffffffffffff1614610b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b149061305d565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000479050610b6e61110e565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610bb3573d6000803e3d6000fd5b5050565b6000610bc484848461192a565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c0f611759565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8690613195565b60405180910390fd5b610cac85610c9b611759565b8584610ca791906131b5565b611761565b60019150509392505050565b60095481565b60006012905090565b610ccf611759565b73ffffffffffffffffffffffffffffffffffffffff16610ced61110e565b73ffffffffffffffffffffffffffffffffffffffff1614610d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3a9061305d565b60405180910390fd5b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610e40610dab611759565b848460016000610db9611759565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e3b91906131e9565b611761565b6001905092915050565b610e52611759565b73ffffffffffffffffffffffffffffffffffffffff16610e7061110e565b73ffffffffffffffffffffffffffffffffffffffff1614610ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebd9061305d565b60405180910390fd5b610ece610cbe565b600a610eda9190613350565b81610ee5919061339b565b60088190555050565b600760169054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f51611759565b73ffffffffffffffffffffffffffffffffffffffff16610f6f61110e565b73ffffffffffffffffffffffffffffffffffffffff1614610fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbc9061305d565b60405180910390fd5b610fcf6000611fce565b565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60185481565b61dead81565b61100b611759565b73ffffffffffffffffffffffffffffffffffffffff1661102961110e565b73ffffffffffffffffffffffffffffffffffffffff161461107f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110769061305d565b60405180910390fd5b600760169054906101000a900460ff16156110cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c690613429565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600981905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461114790612fe0565b80601f016020809104026020016040519081016040528092919081815260200182805461117390612fe0565b80156111c05780601f10611195576101008083540402835291602001916111c0565b820191906000526020600020905b8154815290600101906020018083116111a357829003601f168201915b5050505050905090565b600080600160006111d9611759565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128d906134bb565b60405180910390fd5b6112b36112a1611759565b8585846112ae91906131b5565b611761565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112f133848461192a565b6001905092915050565b611303611759565b73ffffffffffffffffffffffffffffffffffffffff1661132161110e565b73ffffffffffffffffffffffffffffffffffffffff1614611377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136e9061305d565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a6020528060005260406000206000915054906101000a900460ff1681565b60195481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611470611759565b73ffffffffffffffffffffffffffffffffffffffff1661148e61110e565b73ffffffffffffffffffffffffffffffffffffffff16146114e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114db9061305d565b60405180910390fd5b60038110611527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151e90613527565b60405180910390fd5b80600a8190555050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361159f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611596906135b9565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6115c361110e565b836040518363ffffffff1660e01b81526004016115e19291906135d9565b6020604051808303816000875af1158015611600573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116249190613617565b505050565b611631611759565b73ffffffffffffffffffffffffffffffffffffffff1661164f61110e565b73ffffffffffffffffffffffffffffffffffffffff16146116a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169c9061305d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170b906136b6565b60405180910390fd5b61171d81611fce565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760159054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c790613748565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361183f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611836906137da565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161191d9190612d8e565b60405180910390a3505050565b6000811161196d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119649061386c565b60405180910390fd5b601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a115750601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a6657600760169054906101000a900460ff16611a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5c906138d8565b60405180910390fd5b5b6000806000806013600401549050611a7c612983565b6000601a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b225750601a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b3c5750600a54600954611b3991906131e9565b43105b9050600760149054906101000a900460ff1680611ba25750601a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611bf65750601a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611c045760009350611d8f565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16148015611c5f575080155b15611ced57601360030154601360020154601360000154611c8091906131e9565b611c8a91906131e9565b955060136001015486611c9d91906131e9565b945060136040518060a00160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152505091506013600401549250611d8e565b80611d7b57600e60030154600e60020154600e60000154611d0e91906131e9565b611d1891906131e9565b9550600e6001015486611d2b91906131e9565b9450600e6040518060a0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815250509150600e600401549250611d8d565b8015611d8c57600b549550600b5494505b5b5b5b8260648689611d9e919061339b565b611da89190613927565b611db29190613927565b9350600760159054906101000a900460ff168015611e1e5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b15611e2e57611e2d8683612094565b5b611e448989868a611e3f91906131b5565b6122ea565b6000841115611fc3576000861115611e8a576000836064888a611e67919061339b565b611e719190613927565b611e7b9190613927565b9050611e888a30836122ea565b505b600082602001511115611fc2576000836064898560200151611eac919061339b565b611eb69190613927565b611ec09190613927565b905080600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f3291906131e9565b92505081905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fb89190612d8e565b60405180910390a3505b5b505050505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff166122e6576001600760146101000a81548160ff02191690831515021790555060008203156122ca5760006120d730610f01565b905060085481106122c857600160085411156120f35760085490505b6000600284612102919061339b565b9050600081846060015184612117919061339b565b6121219190613927565b90506000818461213191906131b5565b9050600047905061214182612567565b6000814761214f91906131b5565b90506000876080015188606001518761216891906131b5565b6121729190613927565b8261217d9190613927565b905060008860800151896060015183612196919061339b565b6121a09190613927565b905060008111156121b6576121b586826127aa565b5b600089608001518a600001516002856121cf919061339b565b6121d9919061339b565b6121e39190613927565b9050600081111561223a5761223981600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661288a90919063ffffffff16565b5b60008a608001518b60400151600286612253919061339b565b61225d919061339b565b6122679190613927565b905060008111156122be576122bd81600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661288a90919063ffffffff16565b5b5050505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612359576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612350906139ca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123bf90613a5c565b60405180910390fd5b6123d383838361297e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245090613aee565b60405180910390fd5b818161246591906131b5565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124f591906131e9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125599190612d8e565b60405180910390a350505050565b6000600267ffffffffffffffff81111561258457612583612b87565b5b6040519080825280602002602001820160405280156125b25781602001602082028036833780820191505090505b50905030816000815181106125ca576125c961307d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612671573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126959190613b23565b816001815181106126a9576126a861307d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061271030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611761565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612774959493929190613c49565b600060405180830381600087803b15801561278e57600080fd5b505af11580156127a2573d6000803e3d6000fd5b505050505050565b6127d730600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611761565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b815260040161284096959493929190613ca3565b60606040518083038185885af115801561285e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128839190613d19565b5050505050565b804710156128cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c490613db8565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516128f390613e09565b60006040518083038185875af1925050503d8060008114612930576040519150601f19603f3d011682016040523d82523d6000602084013e612935565b606091505b5050905080612979576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297090613e90565b60405180910390fd5b505050565b505050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b838110156129ec5780820151818401526020810190506129d1565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a14826129b2565b612a1e81856129bd565b9350612a2e8185602086016129ce565b612a37816129f8565b840191505092915050565b60006020820190508181036000830152612a5c8184612a09565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612aa382612a78565b9050919050565b612ab381612a98565b8114612abe57600080fd5b50565b600081359050612ad081612aaa565b92915050565b6000819050919050565b612ae981612ad6565b8114612af457600080fd5b50565b600081359050612b0681612ae0565b92915050565b60008060408385031215612b2357612b22612a6e565b5b6000612b3185828601612ac1565b9250506020612b4285828601612af7565b9150509250929050565b60008115159050919050565b612b6181612b4c565b82525050565b6000602082019050612b7c6000830184612b58565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612bbf826129f8565b810181811067ffffffffffffffff82111715612bde57612bdd612b87565b5b80604052505050565b6000612bf1612a64565b9050612bfd8282612bb6565b919050565b600067ffffffffffffffff821115612c1d57612c1c612b87565b5b602082029050602081019050919050565b600080fd5b6000612c46612c4184612c02565b612be7565b90508083825260208201905060208402830185811115612c6957612c68612c2e565b5b835b81811015612c925780612c7e8882612ac1565b845260208401935050602081019050612c6b565b5050509392505050565b600082601f830112612cb157612cb0612b82565b5b8135612cc1848260208601612c33565b91505092915050565b612cd381612b4c565b8114612cde57600080fd5b50565b600081359050612cf081612cca565b92915050565b60008060408385031215612d0d57612d0c612a6e565b5b600083013567ffffffffffffffff811115612d2b57612d2a612a73565b5b612d3785828601612c9c565b9250506020612d4885828601612ce1565b9150509250929050565b600060208284031215612d6857612d67612a6e565b5b6000612d7684828501612ce1565b91505092915050565b612d8881612ad6565b82525050565b6000602082019050612da36000830184612d7f565b92915050565b600060208284031215612dbf57612dbe612a6e565b5b6000612dcd84828501612ac1565b91505092915050565b600080600060608486031215612def57612dee612a6e565b5b6000612dfd86828701612ac1565b9350506020612e0e86828701612ac1565b9250506040612e1f86828701612af7565b9150509250925092565b600060ff82169050919050565b612e3f81612e29565b82525050565b6000602082019050612e5a6000830184612e36565b92915050565b60008060408385031215612e7757612e76612a6e565b5b6000612e8585828601612ac1565b9250506020612e9685828601612ce1565b9150509250929050565b600060208284031215612eb657612eb5612a6e565b5b6000612ec484828501612af7565b91505092915050565b612ed681612a98565b82525050565b6000602082019050612ef16000830184612ecd565b92915050565b60008060408385031215612f0e57612f0d612a6e565b5b6000612f1c85828601612ac1565b9250506020612f2d85828601612ac1565b9150509250929050565b6000819050919050565b6000612f5c612f57612f5284612a78565b612f37565b612a78565b9050919050565b6000612f6e82612f41565b9050919050565b6000612f8082612f63565b9050919050565b612f9081612f75565b82525050565b6000602082019050612fab6000830184612f87565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ff857607f821691505b60208210810361300b5761300a612fb1565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006130476020836129bd565b915061305282613011565b602082019050919050565b600060208201905081810360008301526130768161303a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130e682612ad6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613118576131176130ac565b5b600182019050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061317f6028836129bd565b915061318a82613123565b604082019050919050565b600060208201905081810360008301526131ae81613172565b9050919050565b60006131c082612ad6565b91506131cb83612ad6565b92508282039050818111156131e3576131e26130ac565b5b92915050565b60006131f482612ad6565b91506131ff83612ad6565b9250828201905080821115613217576132166130ac565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115613274578086048111156132505761324f6130ac565b5b600185161561325f5780820291505b808102905061326d8561321d565b9450613234565b94509492505050565b60008261328d5760019050613349565b8161329b5760009050613349565b81600181146132b157600281146132bb576132ea565b6001915050613349565b60ff8411156132cd576132cc6130ac565b5b8360020a9150848211156132e4576132e36130ac565b5b50613349565b5060208310610133831016604e8410600b841016171561331f5782820a90508381111561331a576133196130ac565b5b613349565b61332c848484600161322a565b92509050818404811115613343576133426130ac565b5b81810290505b9392505050565b600061335b82612ad6565b915061336683612e29565b92506133937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461327d565b905092915050565b60006133a682612ad6565b91506133b183612ad6565b92508282026133bf81612ad6565b915082820484148315176133d6576133d56130ac565b5b5092915050565b7f54726164696e6720697320616c726561647920656e61626c6564000000000000600082015250565b6000613413601a836129bd565b915061341e826133dd565b602082019050919050565b6000602082019050818103600083015261344281613406565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006134a56025836129bd565b91506134b082613449565b604082019050919050565b600060208201905081810360008301526134d481613498565b9050919050565b7f446561646c696e652073686f756c64206265206c657373207468616e20330000600082015250565b6000613511601e836129bd565b915061351c826134db565b602082019050919050565b6000602082019050818103600083015261354081613504565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b60006135a36036836129bd565b91506135ae82613547565b604082019050919050565b600060208201905081810360008301526135d281613596565b9050919050565b60006040820190506135ee6000830185612ecd565b6135fb6020830184612d7f565b9392505050565b60008151905061361181612cca565b92915050565b60006020828403121561362d5761362c612a6e565b5b600061363b84828501613602565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006136a06026836129bd565b91506136ab82613644565b604082019050919050565b600060208201905081810360008301526136cf81613693565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006137326024836129bd565b915061373d826136d6565b604082019050919050565b6000602082019050818103600083015261376181613725565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006137c46022836129bd565b91506137cf82613768565b604082019050919050565b600060208201905081810360008301526137f3816137b7565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006138566029836129bd565b9150613861826137fa565b604082019050919050565b6000602082019050818103600083015261388581613849565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006138c26013836129bd565b91506138cd8261388c565b602082019050919050565b600060208201905081810360008301526138f1816138b5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061393282612ad6565b915061393d83612ad6565b92508261394d5761394c6138f8565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006139b46025836129bd565b91506139bf82613958565b604082019050919050565b600060208201905081810360008301526139e3816139a7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a466023836129bd565b9150613a51826139ea565b604082019050919050565b60006020820190508181036000830152613a7581613a39565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613ad86026836129bd565b9150613ae382613a7c565b604082019050919050565b60006020820190508181036000830152613b0781613acb565b9050919050565b600081519050613b1d81612aaa565b92915050565b600060208284031215613b3957613b38612a6e565b5b6000613b4784828501613b0e565b91505092915050565b6000819050919050565b6000613b75613b70613b6b84613b50565b612f37565b612ad6565b9050919050565b613b8581613b5a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613bc081612a98565b82525050565b6000613bd28383613bb7565b60208301905092915050565b6000602082019050919050565b6000613bf682613b8b565b613c008185613b96565b9350613c0b83613ba7565b8060005b83811015613c3c578151613c238882613bc6565b9750613c2e83613bde565b925050600181019050613c0f565b5085935050505092915050565b600060a082019050613c5e6000830188612d7f565b613c6b6020830187613b7c565b8181036040830152613c7d8186613beb565b9050613c8c6060830185612ecd565b613c996080830184612d7f565b9695505050505050565b600060c082019050613cb86000830189612ecd565b613cc56020830188612d7f565b613cd26040830187613b7c565b613cdf6060830186613b7c565b613cec6080830185612ecd565b613cf960a0830184612d7f565b979650505050505050565b600081519050613d1381612ae0565b92915050565b600080600060608486031215613d3257613d31612a6e565b5b6000613d4086828701613d04565b9350506020613d5186828701613d04565b9250506040613d6286828701613d04565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613da2601d836129bd565b9150613dad82613d6c565b602082019050919050565b60006020820190508181036000830152613dd181613d95565b9050919050565b600081905092915050565b50565b6000613df3600083613dd8565b9150613dfe82613de3565b600082019050919050565b6000613e1482613de6565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000613e7a603a836129bd565b9150613e8582613e1e565b604082019050919050565b60006020820190508181036000830152613ea981613e6d565b905091905056fea2646970667358221220f954db5310b54102460df97264c224333dd781a5bfe4c9f9b6c3bffb40b4afd064736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102085760003560e01c806375f0a87411610118578063aacebbe3116100a0578063edaa11681161006f578063edaa116814610766578063ee22c0901461078f578063f2fde38b146107b8578063f887ea40146107e1578063fbe6324e1461080c5761020f565b8063aacebbe314610698578063c5d32bb2146106c1578063dc89f88c146106fe578063dd62ed3e146107295761020f565b80638da5cb5b116100e75780638da5cb5b1461059d57806395d89b41146105c8578063a457c2d7146105f3578063a8aa1b3114610630578063a9059cbb1461065b5761020f565b806375f0a874146105055780637b46eee51461053057806385141a771461055b5780638a8c523c146105865761020f565b806323b872dd1161019b578063395093511161016a578063395093511461042057806342b6fa111461045d5780634ada218b1461048657806370a08231146104b1578063715018a6146104ee5761020f565b806323b872dd14610364578063274a533c146103a1578063313ce567146103cc578063355496ca146103f75761020f565b80631675d802116101d75780631675d802146102ce57806318160ddd146102f95780631816467f1461032457806320800a001461034d5761020f565b806306fdde0314610214578063095ea7b31461023f5780630e375a5c1461027c5780631340538f146102a55761020f565b3661020f57005b600080fd5b34801561022057600080fd5b50610229610837565b6040516102369190612a42565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190612b0c565b6108c9565b6040516102739190612b67565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e9190612cf6565b6108e7565b005b3480156102b157600080fd5b506102cc60048036038101906102c79190612d52565b6109f8565b005b3480156102da57600080fd5b506102e3610a91565b6040516102f09190612d8e565b60405180910390f35b34801561030557600080fd5b5061030e610a97565b60405161031b9190612d8e565b60405180910390f35b34801561033057600080fd5b5061034b60048036038101906103469190612da9565b610aa1565b005b34801561035957600080fd5b50610362610b61565b005b34801561037057600080fd5b5061038b60048036038101906103869190612dd6565b610bb7565b6040516103989190612b67565b60405180910390f35b3480156103ad57600080fd5b506103b6610cb8565b6040516103c39190612d8e565b60405180910390f35b3480156103d857600080fd5b506103e1610cbe565b6040516103ee9190612e45565b60405180910390f35b34801561040357600080fd5b5061041e60048036038101906104199190612e60565b610cc7565b005b34801561042c57600080fd5b5061044760048036038101906104429190612b0c565b610d9e565b6040516104549190612b67565b60405180910390f35b34801561046957600080fd5b50610484600480360381019061047f9190612ea0565b610e4a565b005b34801561049257600080fd5b5061049b610eee565b6040516104a89190612b67565b60405180910390f35b3480156104bd57600080fd5b506104d860048036038101906104d39190612da9565b610f01565b6040516104e59190612d8e565b60405180910390f35b3480156104fa57600080fd5b50610503610f49565b005b34801561051157600080fd5b5061051a610fd1565b6040516105279190612edc565b60405180910390f35b34801561053c57600080fd5b50610545610ff7565b6040516105529190612d8e565b60405180910390f35b34801561056757600080fd5b50610570610ffd565b60405161057d9190612edc565b60405180910390f35b34801561059257600080fd5b5061059b611003565b005b3480156105a957600080fd5b506105b261110e565b6040516105bf9190612edc565b60405180910390f35b3480156105d457600080fd5b506105dd611138565b6040516105ea9190612a42565b60405180910390f35b3480156105ff57600080fd5b5061061a60048036038101906106159190612b0c565b6111ca565b6040516106279190612b67565b60405180910390f35b34801561063c57600080fd5b506106456112be565b6040516106529190612edc565b60405180910390f35b34801561066757600080fd5b50610682600480360381019061067d9190612b0c565b6112e4565b60405161068f9190612b67565b60405180910390f35b3480156106a457600080fd5b506106bf60048036038101906106ba9190612da9565b6112fb565b005b3480156106cd57600080fd5b506106e860048036038101906106e39190612da9565b6113bb565b6040516106f59190612b67565b60405180910390f35b34801561070a57600080fd5b506107136113db565b6040516107209190612d8e565b60405180910390f35b34801561073557600080fd5b50610750600480360381019061074b9190612ef7565b6113e1565b60405161075d9190612d8e565b60405180910390f35b34801561077257600080fd5b5061078d60048036038101906107889190612ea0565b611468565b005b34801561079b57600080fd5b506107b660048036038101906107b19190612b0c565b611531565b005b3480156107c457600080fd5b506107df60048036038101906107da9190612da9565b611629565b005b3480156107ed57600080fd5b506107f6611720565b6040516108039190612f96565b60405180910390f35b34801561081857600080fd5b50610821611746565b60405161082e9190612b67565b60405180910390f35b60606003805461084690612fe0565b80601f016020809104026020016040519081016040528092919081815260200182805461087290612fe0565b80156108bf5780601f10610894576101008083540402835291602001916108bf565b820191906000526020600020905b8154815290600101906020018083116108a257829003601f168201915b5050505050905090565b60006108dd6108d6611759565b8484611761565b6001905092915050565b6108ef611759565b73ffffffffffffffffffffffffffffffffffffffff1661090d61110e565b73ffffffffffffffffffffffffffffffffffffffff1614610963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095a9061305d565b60405180910390fd5b60005b82518110156109f35781601a60008584815181106109875761098661307d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109eb906130db565b915050610966565b505050565b610a00611759565b73ffffffffffffffffffffffffffffffffffffffff16610a1e61110e565b73ffffffffffffffffffffffffffffffffffffffff1614610a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6b9061305d565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b60085481565b6000600254905090565b610aa9611759565b73ffffffffffffffffffffffffffffffffffffffff16610ac761110e565b73ffffffffffffffffffffffffffffffffffffffff1614610b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b149061305d565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000479050610b6e61110e565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610bb3573d6000803e3d6000fd5b5050565b6000610bc484848461192a565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c0f611759565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8690613195565b60405180910390fd5b610cac85610c9b611759565b8584610ca791906131b5565b611761565b60019150509392505050565b60095481565b60006012905090565b610ccf611759565b73ffffffffffffffffffffffffffffffffffffffff16610ced61110e565b73ffffffffffffffffffffffffffffffffffffffff1614610d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3a9061305d565b60405180910390fd5b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610e40610dab611759565b848460016000610db9611759565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e3b91906131e9565b611761565b6001905092915050565b610e52611759565b73ffffffffffffffffffffffffffffffffffffffff16610e7061110e565b73ffffffffffffffffffffffffffffffffffffffff1614610ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebd9061305d565b60405180910390fd5b610ece610cbe565b600a610eda9190613350565b81610ee5919061339b565b60088190555050565b600760169054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f51611759565b73ffffffffffffffffffffffffffffffffffffffff16610f6f61110e565b73ffffffffffffffffffffffffffffffffffffffff1614610fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbc9061305d565b60405180910390fd5b610fcf6000611fce565b565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60185481565b61dead81565b61100b611759565b73ffffffffffffffffffffffffffffffffffffffff1661102961110e565b73ffffffffffffffffffffffffffffffffffffffff161461107f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110769061305d565b60405180910390fd5b600760169054906101000a900460ff16156110cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c690613429565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600981905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461114790612fe0565b80601f016020809104026020016040519081016040528092919081815260200182805461117390612fe0565b80156111c05780601f10611195576101008083540402835291602001916111c0565b820191906000526020600020905b8154815290600101906020018083116111a357829003601f168201915b5050505050905090565b600080600160006111d9611759565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128d906134bb565b60405180910390fd5b6112b36112a1611759565b8585846112ae91906131b5565b611761565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112f133848461192a565b6001905092915050565b611303611759565b73ffffffffffffffffffffffffffffffffffffffff1661132161110e565b73ffffffffffffffffffffffffffffffffffffffff1614611377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136e9061305d565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a6020528060005260406000206000915054906101000a900460ff1681565b60195481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611470611759565b73ffffffffffffffffffffffffffffffffffffffff1661148e61110e565b73ffffffffffffffffffffffffffffffffffffffff16146114e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114db9061305d565b60405180910390fd5b60038110611527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151e90613527565b60405180910390fd5b80600a8190555050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361159f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611596906135b9565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6115c361110e565b836040518363ffffffff1660e01b81526004016115e19291906135d9565b6020604051808303816000875af1158015611600573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116249190613617565b505050565b611631611759565b73ffffffffffffffffffffffffffffffffffffffff1661164f61110e565b73ffffffffffffffffffffffffffffffffffffffff16146116a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169c9061305d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170b906136b6565b60405180910390fd5b61171d81611fce565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760159054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c790613748565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361183f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611836906137da565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161191d9190612d8e565b60405180910390a3505050565b6000811161196d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119649061386c565b60405180910390fd5b601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a115750601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a6657600760169054906101000a900460ff16611a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5c906138d8565b60405180910390fd5b5b6000806000806013600401549050611a7c612983565b6000601a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b225750601a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b3c5750600a54600954611b3991906131e9565b43105b9050600760149054906101000a900460ff1680611ba25750601a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611bf65750601a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611c045760009350611d8f565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16148015611c5f575080155b15611ced57601360030154601360020154601360000154611c8091906131e9565b611c8a91906131e9565b955060136001015486611c9d91906131e9565b945060136040518060a00160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152505091506013600401549250611d8e565b80611d7b57600e60030154600e60020154600e60000154611d0e91906131e9565b611d1891906131e9565b9550600e6001015486611d2b91906131e9565b9450600e6040518060a0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815250509150600e600401549250611d8d565b8015611d8c57600b549550600b5494505b5b5b5b8260648689611d9e919061339b565b611da89190613927565b611db29190613927565b9350600760159054906101000a900460ff168015611e1e5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b15611e2e57611e2d8683612094565b5b611e448989868a611e3f91906131b5565b6122ea565b6000841115611fc3576000861115611e8a576000836064888a611e67919061339b565b611e719190613927565b611e7b9190613927565b9050611e888a30836122ea565b505b600082602001511115611fc2576000836064898560200151611eac919061339b565b611eb69190613927565b611ec09190613927565b905080600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f3291906131e9565b92505081905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fb89190612d8e565b60405180910390a3505b5b505050505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff166122e6576001600760146101000a81548160ff02191690831515021790555060008203156122ca5760006120d730610f01565b905060085481106122c857600160085411156120f35760085490505b6000600284612102919061339b565b9050600081846060015184612117919061339b565b6121219190613927565b90506000818461213191906131b5565b9050600047905061214182612567565b6000814761214f91906131b5565b90506000876080015188606001518761216891906131b5565b6121729190613927565b8261217d9190613927565b905060008860800151896060015183612196919061339b565b6121a09190613927565b905060008111156121b6576121b586826127aa565b5b600089608001518a600001516002856121cf919061339b565b6121d9919061339b565b6121e39190613927565b9050600081111561223a5761223981600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661288a90919063ffffffff16565b5b60008a608001518b60400151600286612253919061339b565b61225d919061339b565b6122679190613927565b905060008111156122be576122bd81600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661288a90919063ffffffff16565b5b5050505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612359576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612350906139ca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123bf90613a5c565b60405180910390fd5b6123d383838361297e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245090613aee565b60405180910390fd5b818161246591906131b5565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124f591906131e9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125599190612d8e565b60405180910390a350505050565b6000600267ffffffffffffffff81111561258457612583612b87565b5b6040519080825280602002602001820160405280156125b25781602001602082028036833780820191505090505b50905030816000815181106125ca576125c961307d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612671573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126959190613b23565b816001815181106126a9576126a861307d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061271030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611761565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612774959493929190613c49565b600060405180830381600087803b15801561278e57600080fd5b505af11580156127a2573d6000803e3d6000fd5b505050505050565b6127d730600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611761565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b815260040161284096959493929190613ca3565b60606040518083038185885af115801561285e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128839190613d19565b5050505050565b804710156128cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c490613db8565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516128f390613e09565b60006040518083038185875af1925050503d8060008114612930576040519150601f19603f3d011682016040523d82523d6000602084013e612935565b606091505b5050905080612979576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297090613e90565b60405180910390fd5b505050565b505050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b838110156129ec5780820151818401526020810190506129d1565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a14826129b2565b612a1e81856129bd565b9350612a2e8185602086016129ce565b612a37816129f8565b840191505092915050565b60006020820190508181036000830152612a5c8184612a09565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612aa382612a78565b9050919050565b612ab381612a98565b8114612abe57600080fd5b50565b600081359050612ad081612aaa565b92915050565b6000819050919050565b612ae981612ad6565b8114612af457600080fd5b50565b600081359050612b0681612ae0565b92915050565b60008060408385031215612b2357612b22612a6e565b5b6000612b3185828601612ac1565b9250506020612b4285828601612af7565b9150509250929050565b60008115159050919050565b612b6181612b4c565b82525050565b6000602082019050612b7c6000830184612b58565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612bbf826129f8565b810181811067ffffffffffffffff82111715612bde57612bdd612b87565b5b80604052505050565b6000612bf1612a64565b9050612bfd8282612bb6565b919050565b600067ffffffffffffffff821115612c1d57612c1c612b87565b5b602082029050602081019050919050565b600080fd5b6000612c46612c4184612c02565b612be7565b90508083825260208201905060208402830185811115612c6957612c68612c2e565b5b835b81811015612c925780612c7e8882612ac1565b845260208401935050602081019050612c6b565b5050509392505050565b600082601f830112612cb157612cb0612b82565b5b8135612cc1848260208601612c33565b91505092915050565b612cd381612b4c565b8114612cde57600080fd5b50565b600081359050612cf081612cca565b92915050565b60008060408385031215612d0d57612d0c612a6e565b5b600083013567ffffffffffffffff811115612d2b57612d2a612a73565b5b612d3785828601612c9c565b9250506020612d4885828601612ce1565b9150509250929050565b600060208284031215612d6857612d67612a6e565b5b6000612d7684828501612ce1565b91505092915050565b612d8881612ad6565b82525050565b6000602082019050612da36000830184612d7f565b92915050565b600060208284031215612dbf57612dbe612a6e565b5b6000612dcd84828501612ac1565b91505092915050565b600080600060608486031215612def57612dee612a6e565b5b6000612dfd86828701612ac1565b9350506020612e0e86828701612ac1565b9250506040612e1f86828701612af7565b9150509250925092565b600060ff82169050919050565b612e3f81612e29565b82525050565b6000602082019050612e5a6000830184612e36565b92915050565b60008060408385031215612e7757612e76612a6e565b5b6000612e8585828601612ac1565b9250506020612e9685828601612ce1565b9150509250929050565b600060208284031215612eb657612eb5612a6e565b5b6000612ec484828501612af7565b91505092915050565b612ed681612a98565b82525050565b6000602082019050612ef16000830184612ecd565b92915050565b60008060408385031215612f0e57612f0d612a6e565b5b6000612f1c85828601612ac1565b9250506020612f2d85828601612ac1565b9150509250929050565b6000819050919050565b6000612f5c612f57612f5284612a78565b612f37565b612a78565b9050919050565b6000612f6e82612f41565b9050919050565b6000612f8082612f63565b9050919050565b612f9081612f75565b82525050565b6000602082019050612fab6000830184612f87565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ff857607f821691505b60208210810361300b5761300a612fb1565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006130476020836129bd565b915061305282613011565b602082019050919050565b600060208201905081810360008301526130768161303a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130e682612ad6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613118576131176130ac565b5b600182019050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061317f6028836129bd565b915061318a82613123565b604082019050919050565b600060208201905081810360008301526131ae81613172565b9050919050565b60006131c082612ad6565b91506131cb83612ad6565b92508282039050818111156131e3576131e26130ac565b5b92915050565b60006131f482612ad6565b91506131ff83612ad6565b9250828201905080821115613217576132166130ac565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115613274578086048111156132505761324f6130ac565b5b600185161561325f5780820291505b808102905061326d8561321d565b9450613234565b94509492505050565b60008261328d5760019050613349565b8161329b5760009050613349565b81600181146132b157600281146132bb576132ea565b6001915050613349565b60ff8411156132cd576132cc6130ac565b5b8360020a9150848211156132e4576132e36130ac565b5b50613349565b5060208310610133831016604e8410600b841016171561331f5782820a90508381111561331a576133196130ac565b5b613349565b61332c848484600161322a565b92509050818404811115613343576133426130ac565b5b81810290505b9392505050565b600061335b82612ad6565b915061336683612e29565b92506133937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461327d565b905092915050565b60006133a682612ad6565b91506133b183612ad6565b92508282026133bf81612ad6565b915082820484148315176133d6576133d56130ac565b5b5092915050565b7f54726164696e6720697320616c726561647920656e61626c6564000000000000600082015250565b6000613413601a836129bd565b915061341e826133dd565b602082019050919050565b6000602082019050818103600083015261344281613406565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006134a56025836129bd565b91506134b082613449565b604082019050919050565b600060208201905081810360008301526134d481613498565b9050919050565b7f446561646c696e652073686f756c64206265206c657373207468616e20330000600082015250565b6000613511601e836129bd565b915061351c826134db565b602082019050919050565b6000602082019050818103600083015261354081613504565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b60006135a36036836129bd565b91506135ae82613547565b604082019050919050565b600060208201905081810360008301526135d281613596565b9050919050565b60006040820190506135ee6000830185612ecd565b6135fb6020830184612d7f565b9392505050565b60008151905061361181612cca565b92915050565b60006020828403121561362d5761362c612a6e565b5b600061363b84828501613602565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006136a06026836129bd565b91506136ab82613644565b604082019050919050565b600060208201905081810360008301526136cf81613693565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006137326024836129bd565b915061373d826136d6565b604082019050919050565b6000602082019050818103600083015261376181613725565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006137c46022836129bd565b91506137cf82613768565b604082019050919050565b600060208201905081810360008301526137f3816137b7565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006138566029836129bd565b9150613861826137fa565b604082019050919050565b6000602082019050818103600083015261388581613849565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006138c26013836129bd565b91506138cd8261388c565b602082019050919050565b600060208201905081810360008301526138f1816138b5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061393282612ad6565b915061393d83612ad6565b92508261394d5761394c6138f8565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006139b46025836129bd565b91506139bf82613958565b604082019050919050565b600060208201905081810360008301526139e3816139a7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a466023836129bd565b9150613a51826139ea565b604082019050919050565b60006020820190508181036000830152613a7581613a39565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613ad86026836129bd565b9150613ae382613a7c565b604082019050919050565b60006020820190508181036000830152613b0781613acb565b9050919050565b600081519050613b1d81612aaa565b92915050565b600060208284031215613b3957613b38612a6e565b5b6000613b4784828501613b0e565b91505092915050565b6000819050919050565b6000613b75613b70613b6b84613b50565b612f37565b612ad6565b9050919050565b613b8581613b5a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613bc081612a98565b82525050565b6000613bd28383613bb7565b60208301905092915050565b6000602082019050919050565b6000613bf682613b8b565b613c008185613b96565b9350613c0b83613ba7565b8060005b83811015613c3c578151613c238882613bc6565b9750613c2e83613bde565b925050600181019050613c0f565b5085935050505092915050565b600060a082019050613c5e6000830188612d7f565b613c6b6020830187613b7c565b8181036040830152613c7d8186613beb565b9050613c8c6060830185612ecd565b613c996080830184612d7f565b9695505050505050565b600060c082019050613cb86000830189612ecd565b613cc56020830188612d7f565b613cd26040830187613b7c565b613cdf6060830186613b7c565b613cec6080830185612ecd565b613cf960a0830184612d7f565b979650505050505050565b600081519050613d1381612ae0565b92915050565b600080600060608486031215613d3257613d31612a6e565b5b6000613d4086828701613d04565b9350506020613d5186828701613d04565b9250506040613d6286828701613d04565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613da2601d836129bd565b9150613dad82613d6c565b602082019050919050565b60006020820190508181036000830152613dd181613d95565b9050919050565b600081905092915050565b50565b6000613df3600083613dd8565b9150613dfe82613de3565b600082019050919050565b6000613e1482613de6565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000613e7a603a836129bd565b9150613e8582613e1e565b604082019050919050565b60006020820190508181036000830152613ea981613e6d565b905091905056fea2646970667358221220f954db5310b54102460df97264c224333dd781a5bfe4c9f9b6c3bffb40b4afd064736f6c63430008130033

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.