Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 36 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 17720976 | 966 days ago | IN | 0 ETH | 0.00176185 | ||||
| Approve | 17720962 | 966 days ago | IN | 0 ETH | 0.00175919 | ||||
| Approve | 17720874 | 966 days ago | IN | 0 ETH | 0.00182204 | ||||
| Approve | 17720826 | 966 days ago | IN | 0 ETH | 0.00158111 | ||||
| Approve | 17720817 | 966 days ago | IN | 0 ETH | 0.00171827 | ||||
| Approve | 17720801 | 966 days ago | IN | 0 ETH | 0.00148378 | ||||
| Approve | 17720783 | 966 days ago | IN | 0 ETH | 0.00144503 | ||||
| Approve | 17720779 | 966 days ago | IN | 0 ETH | 0.00154313 | ||||
| Approve | 17720764 | 966 days ago | IN | 0 ETH | 0.0016514 | ||||
| Approve | 17720751 | 966 days ago | IN | 0 ETH | 0.00179484 | ||||
| Approve | 17720731 | 966 days ago | IN | 0 ETH | 0.00180803 | ||||
| Approve | 17720721 | 966 days ago | IN | 0 ETH | 0.00173758 | ||||
| Waive Ownership | 17720704 | 966 days ago | IN | 0 ETH | 0.00110081 | ||||
| Approve | 17720684 | 966 days ago | IN | 0 ETH | 0.00186213 | ||||
| Approve | 17720651 | 966 days ago | IN | 0 ETH | 0.0017973 | ||||
| Transfer | 17720586 | 966 days ago | IN | 0 ETH | 0.00170696 | ||||
| Transfer | 17720576 | 966 days ago | IN | 0 ETH | 0.00160078 | ||||
| Transfer | 17720566 | 966 days ago | IN | 0 ETH | 0.00553985 | ||||
| Transfer | 17720555 | 966 days ago | IN | 0 ETH | 0.00571489 | ||||
| Transfer | 17720521 | 966 days ago | IN | 0 ETH | 0.00204578 | ||||
| Transfer | 17720518 | 966 days ago | IN | 0 ETH | 0.00241001 | ||||
| Transfer | 17720515 | 966 days ago | IN | 0 ETH | 0.00241744 | ||||
| Transfer | 17720510 | 966 days ago | IN | 0 ETH | 0.00715461 | ||||
| Transfer | 17720500 | 966 days ago | IN | 0 ETH | 0.00723346 | ||||
| Approve | 17720488 | 966 days ago | IN | 0 ETH | 0.00186449 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 17723674 | 966 days ago | 0.000376 ETH | ||||
| Transfer | 17723674 | 966 days ago | 0.000376 ETH | ||||
| Transfer | 17723279 | 966 days ago | 0.00023192 ETH | ||||
| Transfer | 17723279 | 966 days ago | 0.00023192 ETH | ||||
| Transfer | 17720997 | 966 days ago | 0.00022801 ETH | ||||
| Transfer | 17720997 | 966 days ago | 0.00022801 ETH | ||||
| Transfer | 17720978 | 966 days ago | 0.00031454 ETH | ||||
| Transfer | 17720978 | 966 days ago | 0.00031454 ETH | ||||
| Transfer | 17720958 | 966 days ago | 0.00059765 ETH | ||||
| Transfer | 17720958 | 966 days ago | 0.00059765 ETH | ||||
| Transfer | 17720956 | 966 days ago | 0.00059765 ETH | ||||
| Transfer | 17720956 | 966 days ago | 0.00059765 ETH | ||||
| Transfer | 17720871 | 966 days ago | 0.00125584 ETH | ||||
| Transfer | 17720871 | 966 days ago | 0.00125584 ETH | ||||
| Transfer | 17720841 | 966 days ago | 0.00172012 ETH | ||||
| Transfer | 17720841 | 966 days ago | 0.00172012 ETH | ||||
| Transfer | 17720836 | 966 days ago | 0.00686757 ETH | ||||
| Transfer | 17720836 | 966 days ago | 0.00686757 ETH | ||||
| Transfer | 17720815 | 966 days ago | 0.00074487 ETH | ||||
| Transfer | 17720815 | 966 days ago | 0.00074487 ETH | ||||
| Transfer | 17720804 | 966 days ago | 0.0009534 ETH | ||||
| Transfer | 17720804 | 966 days ago | 0.0009534 ETH | ||||
| Transfer | 17720794 | 966 days ago | 0.00127047 ETH | ||||
| Transfer | 17720794 | 966 days ago | 0.00127047 ETH | ||||
| Transfer | 17720784 | 966 days ago | 0.00169422 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
EvaFox
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-07-18
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return payable(msg.sender);
}
function _msgData() internal view virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount)
external
returns (bool);
function allowance(address owner, address spender)
external
view
returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
library Address {
function isContract(address account) internal view returns (bool) {
// According to EIP-1052, 0x0 is the value returned for not-yet created accounts
// and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
// for accounts without code, i.e. `keccak256('')`
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
// solhint-disable-next-line no-inline-assembly
assembly {
codehash := extcodehash(account)
}
return (codehash != accountHash && codehash != 0x0);
}
function sendValue(address payable recipient, uint256 amount) internal {
require(
address(this).balance >= amount,
"Address: insufficient balance"
);
// solhint-disable-next-line avoid-low-level-calls, avoid-call-value
(bool success, ) = recipient.call{value: amount}("");
require(
success,
"Address: unable to send value, recipient may have reverted"
);
}
function functionCall(address target, bytes memory data)
internal
returns (bytes memory)
{
return functionCall(target, data, "Address: low-level call failed");
}
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return _functionCallWithValue(target, data, 0, errorMessage);
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return
functionCallWithValue(
target,
data,
value,
"Address: low-level call with value failed"
);
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(
address(this).balance >= value,
"Address: insufficient balance for call"
);
return _functionCallWithValue(target, data, value, errorMessage);
}
function _functionCallWithValue(
address target,
bytes memory data,
uint256 weiValue,
string memory errorMessage
) private returns (bytes memory) {
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{value: weiValue}(
data
);
if (success) {
return returndata;
} else {
if (returndata.length > 0) {
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
contract Ownable is Context {
address internal _owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function waiveOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0xdead));
_owner = address(0xdead);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(
newOwner != address(0),
"Ownable: new owner is the zero address"
);
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
function getTime() public view returns (uint256) {
return block.timestamp;
}
}
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 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 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 IUniswapV2Router01 {
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 removeLiquidity(
address tokenA,
address tokenB,
uint256 liquidity,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
) external returns (uint256 amountA, uint256 amountB);
function removeLiquidityETH(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
) external returns (uint256 amountToken, uint256 amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint256 liquidity,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountA, uint256 amountB);
function removeLiquidityETHWithPermit(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountToken, uint256 amountETH);
function swapExactTokensForTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapTokensForExactTokens(
uint256 amountOut,
uint256 amountInMax,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapExactETHForTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable returns (uint256[] memory amounts);
function swapTokensForExactETH(
uint256 amountOut,
uint256 amountInMax,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapExactTokensForETH(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapETHForExactTokens(
uint256 amountOut,
address[] calldata path,
address to,
uint256 deadline
) external payable returns (uint256[] memory amounts);
function quote(
uint256 amountA,
uint256 reserveA,
uint256 reserveB
) external pure returns (uint256 amountB);
function getAmountOut(
uint256 amountIn,
uint256 reserveIn,
uint256 reserveOut
) external pure returns (uint256 amountOut);
function getAmountIn(
uint256 amountOut,
uint256 reserveIn,
uint256 reserveOut
) external pure returns (uint256 amountIn);
function getAmountsOut(uint256 amountIn, address[] calldata path)
external
view
returns (uint256[] memory amounts);
function getAmountsIn(uint256 amountOut, address[] calldata path)
external
view
returns (uint256[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
) external returns (uint256 amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountETH);
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 ABS is Context, IERC20, Ownable {
using SafeMath for uint256;
using Address for address;
string private _name;
string private _symbol;
uint8 private _decimals = 9;
bool public isLaunch = false;
address payable private marketingWalletAddress;
address payable private receiveLP;
address public deadAddress = 0x000000000000000000000000000000000000dEaD;
mapping(address => uint256) _balances;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) public isExcludedFromFee;
mapping(address => bool) public isMarketPair;
mapping(address => bool) private _isBlacklisted;
//Fee is set here
uint256 public _totalTaxIfBuying = 1;
uint256 public _totalTaxIfSelling = 1;
//Total supply, and transaction limatation are set here
uint256 private _totalSupply = 420690000000000 * 10**_decimals;
uint256 private minimumTokensBeforeSwap = 4206900000 * 5**_decimals;
IUniswapV2Router02 public uniswapV2Router;
address public uniswapPair;
bool inSwapAndLiquify;
bool public swapAndLiquifyEnabled = true;
bool public swapAndLiquifyByLimitOnly = false;
event SwapAndLiquifyEnabledUpdated(bool enabled);
event SwapAndLiquify(
uint256 tokensSwapped,
uint256 ethReceived,
uint256 tokensIntoLiqudity
);
event SwapETHForTokens(uint256 amountIn, address[] path);
event SwapTokensForETH(uint256 amountIn, address[] path);
modifier lockTheSwap() {
inSwapAndLiquify = true;
_;
inSwapAndLiquify = false;
}
constructor(
string memory __name,
string memory __symbol,
address MarketingAddress,
address ReceiveAddress
) {
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
);
uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(
address(this),
_uniswapV2Router.WETH()
);
uniswapV2Router = _uniswapV2Router;
_allowances[address(this)][address(uniswapV2Router)] = _totalSupply;
_name = __name;
_symbol = __symbol;
marketingWalletAddress = payable(MarketingAddress);
receiveLP = payable(ReceiveAddress);
//Wallet that are tax free as default
isExcludedFromFee[owner()] = true;
isExcludedFromFee[address(this)] = true;
isExcludedFromFee[marketingWalletAddress] = true;
isExcludedFromFee[ReceiveAddress] = true;
isMarketPair[address(uniswapPair)] = true;
_balances[ReceiveAddress] = _totalSupply;
emit Transfer(address(0), ReceiveAddress, _totalSupply);
}
function name() public view returns (string memory) {
return _name;
}
function symbol() public view returns (string memory) {
return _symbol;
}
function decimals() public view returns (uint8) {
return _decimals;
}
function totalSupply() public view override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function allowance(address owner, address spender)
public
view
override
returns (uint256)
{
return _allowances[owner][spender];
}
function increaseAllowance(address spender, uint256 addedValue)
public
virtual
returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender].add(addedValue)
);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue)
public
virtual
returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender].sub(
subtractedValue,
"ERC20: decreased allowance below zero"
)
);
return true;
}
function minimumTokensBeforeSwapAmount() public view returns (uint256) {
return minimumTokensBeforeSwap;
}
function approve(address spender, uint256 amount)
public
override
returns (bool)
{
_approve(_msgSender(), spender, amount);
return true;
}
function _approve(
address owner,
address spender,
uint256 amount
) private {
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);
}
//Start trading
function Launch() public onlyOwner {
require(!isLaunch, "Already Launched!!");
isLaunch = true;
}
function setMarketPairStatus(address account, bool newValue)
public
onlyOwner
{
isMarketPair[account] = newValue;
}
//Set tax exception
function setIsExcludedFromFee(address account, bool newValue)
public
onlyOwner
{
isExcludedFromFee[account] = newValue;
}
function setBuyTaxes(uint256 newMarketingTax) external onlyOwner {
_totalTaxIfBuying = newMarketingTax;
}
function setSellTaxes(uint256 newMarketingTax) external onlyOwner {
_totalTaxIfSelling = newMarketingTax;
}
function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner {
minimumTokensBeforeSwap = newLimit;
}
function setMarketingWalletAddress(address newAddress) external onlyOwner {
marketingWalletAddress = payable(newAddress);
isExcludedFromFee[newAddress] = true;
}
function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
swapAndLiquifyEnabled = _enabled;
emit SwapAndLiquifyEnabledUpdated(_enabled);
}
function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner {
swapAndLiquifyByLimitOnly = newValue;
}
function getCirculatingSupply() public view returns (uint256) {
return _totalSupply.sub(balanceOf(deadAddress));
}
function transferToAddressETH(address payable recipient, uint256 amount)
private
{
recipient.transfer(amount);
}
function changeRouterVersion(address newRouterAddress)
public
onlyOwner
returns (address newPairAddress)
{
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
newRouterAddress
);
newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(
address(this),
_uniswapV2Router.WETH()
);
if (newPairAddress == address(0)) //Create If Doesnt exist
{
newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
}
uniswapPair = newPairAddress; //Set new pair address
uniswapV2Router = _uniswapV2Router; //Set new router address
isMarketPair[address(uniswapPair)] = true;
}
//to recieve ETH from uniswapV2Router when swaping
receive() external payable {}
function transfer(address recipient, uint256 amount)
public
override
returns (bool)
{
_transfer(_msgSender(), recipient, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(
sender,
_msgSender(),
_allowances[sender][_msgSender()].sub(
amount,
"ERC20: transfer amount exceeds allowance"
)
);
return true;
}
function isBlackList(address account) public view returns (bool) {
return _isBlacklisted[account];
}
//Add blacklist
function writeBlackList(address recipient, bool isBlack) public onlyOwner {
_isBlacklisted[recipient] = isBlack;
}
function writeMulti_Black(address[] memory recipient, bool isBlack)
public
onlyOwner
{
for (uint256 i = 0; i < recipient.length; i++) {
_isBlacklisted[recipient[i]] = isBlack;
}
}
function writeMulti_White(address[] memory recipient, bool isWhite)
public
onlyOwner
{
for (uint256 i = 0; i < recipient.length; i++) {
isExcludedFromFee[recipient[i]] = isWhite;
}
}
function checkBclist(address _checkAddress) internal view returns (bool) {
// Prevent From Bclist Contract and LP
if (_checkAddress == address(this)) return false;
if (isMarketPair[_checkAddress]) return false;
if (!_isBlacklisted[_checkAddress]) return false;
return true;
}
function _transfer(
address sender,
address recipient,
uint256 amount
) private returns (bool) {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
require(!checkBclist(sender), "Blacklisted address");
if (inSwapAndLiquify) {
return _basicTransfer(sender, recipient, amount);
} else {
uint256 contractTokenBalance = balanceOf(address(this));
bool overMinimumTokenBalance = contractTokenBalance >=
minimumTokensBeforeSwap;
if (
overMinimumTokenBalance &&
!inSwapAndLiquify &&
!isMarketPair[sender] &&
swapAndLiquifyEnabled
) {
if (swapAndLiquifyByLimitOnly)
contractTokenBalance = minimumTokensBeforeSwap;
swapAndLiquify(contractTokenBalance);
}
uint256 maxSell = balanceOf(sender).mul(9999).div(10000);
if (amount > maxSell && !isExcludedFromFee[sender])
amount = maxSell;
_balances[sender] = _balances[sender].sub(
amount,
"Insufficient Balance"
);
uint256 finalAmount;
if (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
finalAmount = amount;
} else {
require(isLaunch, "Swap not open");
finalAmount = takeFee(sender, recipient, amount);
}
_balances[recipient] = _balances[recipient].add(finalAmount);
emit Transfer(sender, recipient, finalAmount);
return true;
}
}
function _basicTransfer(
address sender,
address recipient,
uint256 amount
) internal returns (bool) {
_balances[sender] = _balances[sender].sub(
amount,
"Insufficient Balance"
);
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
return true;
}
function swapAndLiquify(uint256 tAmount) private lockTheSwap {
swapTokensForEth(tAmount);
uint256 amountReceived = address(this).balance;
if (amountReceived > 0) sentBuyBack(amountReceived);
}
function sentBuyBack(uint256 amount) internal {
(bool sent, ) = marketingWalletAddress.call{value: amount, gas: 300000}(
""
);
require(sent, "failed");
}
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), // The contract
block.timestamp
);
emit SwapTokensForETH(tokenAmount, path);
}
function takeFee(
address sender,
address recipient,
uint256 amount
) internal returns (uint256) {
uint256 feeAmount = 0;
if (isMarketPair[sender]) {
feeAmount = amount.mul(_totalTaxIfBuying).div(100);
} else if (isMarketPair[recipient]) {
feeAmount = amount.mul(_totalTaxIfSelling).div(100);
}
if (feeAmount > 0) {
_balances[address(this)] = _balances[address(this)].add(feeAmount);
emit Transfer(sender, address(this), feeAmount);
}
return amount.sub(feeAmount);
}
function emergencyWithdraw(
address token,
address to
) external onlyOwner {
require(token != address(this), "Cannot take this token out");
IERC20 _token = IERC20(token);
uint256 tokenBalance = _token.balanceOf(address(this));
_token.transfer(to,tokenBalance);
}
}
contract EvaFox is ABS {
constructor()
ABS(
"EvaFox",
"Fox",
address(0x645d7890100384Ee700cD43E354621370cD7Ba0e), //Marketing
address(0x645d7890100384Ee700cD43E354621370cD7Ba0e) //Receiver
)
{}
}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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBlackList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isLaunch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","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":[{"internalType":"uint256","name":"newMarketingTax","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketingTax","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"uniswapPair","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":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bool","name":"isBlack","type":"bool"}],"name":"writeBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipient","type":"address[]"},{"internalType":"bool","name":"isBlack","type":"bool"}],"name":"writeMulti_Black","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipient","type":"address[]"},{"internalType":"bool","name":"isWhite","type":"bool"}],"name":"writeMulti_White","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526003805461ffff19166009908117909155600580546001600160a01b03191661dead1790556001600b819055600c556200004090600a62000531565b620000539066017e9d8602b40062000549565b600d55600354620000699060ff16600562000531565b620000799063fac0332062000549565b600e556010805461ffff60a81b1916600160a81b1790553480156200009d57600080fd5b506040518060400160405280600681526020016508aecc28cdef60d31b8152506040518060400160405280600381526020016208cdef60eb1b81525073645d7890100384ee700cd43e354621370cd7ba0e806000620001016200041860201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c9919062000563565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000217573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023d919062000563565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200028b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b1919062000563565b601080546001600160a01b039283166001600160a01b031991821617909155600f80549284169290911682179055600d54306000908152600760209081526040808320948352939052919091205560016200030d868262000633565b5060026200031c858262000633565b506003805462010000600160b01b031916620100006001600160a01b038681168202929092178355600480546001600160a01b0319168684169081179091556000805484168152600860209081526040808320805460ff199081166001908117909255308552828520805482168317905597549590950486168352808320805488168617905583835280832080548816861790556010549095168252600981528482208054909616909317909455600d5481855260068352838520819055835190815292519093927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92908290030190a35050505050620006ff565b3390565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004735781600019048211156200045757620004576200041c565b808516156200046557918102915b93841c939080029062000437565b509250929050565b6000826200048c575060016200052b565b816200049b575060006200052b565b8160018114620004b45760028114620004bf57620004df565b60019150506200052b565b60ff841115620004d357620004d36200041c565b50506001821b6200052b565b5060208310610133831016604e8410600b841016171562000504575081810a6200052b565b62000510838362000432565b80600019048211156200052757620005276200041c565b0290505b92915050565b60006200054260ff8416836200047b565b9392505050565b80820281158282048414176200052b576200052b6200041c565b6000602082840312156200057657600080fd5b81516001600160a01b03811681146200054257600080fd5b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005b957607f821691505b602082108103620005da57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200062e57600081815260208120601f850160051c81016020861015620006095750805b601f850160051c820191505b818110156200062a5782815560010162000615565b5050505b505050565b81516001600160401b038111156200064f576200064f6200058e565b6200066781620006608454620005a4565b84620005e0565b602080601f8311600181146200069f5760008415620006865750858301515b600019600386901b1c1916600185901b1785556200062a565b600085815260208120601f198616915b82811015620006d057888601518255948401946001909101908401620006af565b5085821015620006ef5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6124df806200070f6000396000f3fe6080604052600436106102555760003560e01c806382eefb4311610139578063b36d6919116100b6578063dd62ed3e1161007a578063dd62ed3e14610718578063e1764e7e1461075e578063ef422a181461077e578063f0cd1dac1461079e578063f2fde38b146107b4578063f5d588f5146107d457600080fd5b8063b36d69191461065e578063c49b9a8014610697578063c816841b146106b7578063cb39aa03146106d7578063da00097d146106f757600080fd5b8063a073d37f116100fd578063a073d37f146105c9578063a3ca847d146105de578063a457c2d7146105fe578063a5d69d1f1461061e578063a9059cbb1461063e57600080fd5b806382eefb431461054b578063844d591c146105615780638da5cb5b14610581578063914eb66a1461059f57806395d89b41146105b457600080fd5b8063313ce567116101d25780634cb80fd5116101965780634cb80fd5146104725780635342acb414610492578063557ed1ba146104c25780635881f3ef146104d55780636382d9ad146104f557806370a082311461051557600080fd5b8063313ce567146103bf57806339509351146103e15780633b97084a146104015780633ecad271146104215780634a74bb021461045157600080fd5b80631694505e116102195780631694505e1461031357806318160ddd1461034b57806323b872dd1461036a57806327c8f8351461038a5780632b112e49146103aa57600080fd5b806302ac816814610261578063068bd0fc1461027857806306fdde03146102985780630940bbc7146102c3578063095ea7b3146102e357600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b506102766107f3565b005b34801561028457600080fd5b50610276610293366004612009565b610884565b3480156102a457600080fd5b506102ad61091a565b6040516102ba91906120e0565b60405180910390f35b3480156102cf57600080fd5b506102766102de36600461212e565b6109ac565b3480156102ef57600080fd5b506103036102fe366004612147565b6109db565b60405190151581526020016102ba565b34801561031f57600080fd5b50600f54610333906001600160a01b031681565b6040516001600160a01b0390911681526020016102ba565b34801561035757600080fd5b50600d545b6040519081526020016102ba565b34801561037657600080fd5b50610303610385366004612173565b6109f2565b34801561039657600080fd5b50600554610333906001600160a01b031681565b3480156103b657600080fd5b5061035c610a5d565b3480156103cb57600080fd5b5060035460405160ff90911681526020016102ba565b3480156103ed57600080fd5b506103036103fc366004612147565b610a89565b34801561040d57600080fd5b5061027661041c36600461212e565b610abf565b34801561042d57600080fd5b5061030361043c3660046121b4565b60096020526000908152604090205460ff1681565b34801561045d57600080fd5b5060105461030390600160a81b900460ff1681565b34801561047e57600080fd5b5061027661048d3660046121b4565b610aee565b34801561049e57600080fd5b506103036104ad3660046121b4565b60086020526000908152604090205460ff1681565b3480156104ce57600080fd5b504261035c565b3480156104e157600080fd5b506103336104f03660046121b4565b610b59565b34801561050157600080fd5b506102766105103660046121d1565b610e73565b34801561052157600080fd5b5061035c6105303660046121b4565b6001600160a01b031660009081526006602052604090205490565b34801561055757600080fd5b5061035c600c5481565b34801561056d57600080fd5b5061027661057c36600461220a565b610fe0565b34801561058d57600080fd5b506000546001600160a01b0316610333565b3480156105ab57600080fd5b50610276611035565b3480156105c057600080fd5b506102ad6110af565b3480156105d557600080fd5b50600e5461035c565b3480156105ea57600080fd5b506102766105f936600461212e565b6110be565b34801561060a57600080fd5b50610303610619366004612147565b6110ed565b34801561062a57600080fd5b50610276610639366004612238565b61113c565b34801561064a57600080fd5b50610303610659366004612147565b611184565b34801561066a57600080fd5b506103036106793660046121b4565b6001600160a01b03166000908152600a602052604090205460ff1690565b3480156106a357600080fd5b506102766106b2366004612238565b611191565b3480156106c357600080fd5b50601054610333906001600160a01b031681565b3480156106e357600080fd5b506102766106f2366004612009565b611213565b34801561070357600080fd5b5060105461030390600160b01b900460ff1681565b34801561072457600080fd5b5061035c6107333660046121d1565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561076a57600080fd5b5061027661077936600461220a565b6112a4565b34801561078a57600080fd5b5061027661079936600461220a565b6112f9565b3480156107aa57600080fd5b5061035c600b5481565b3480156107c057600080fd5b506102766107cf3660046121b4565b61134e565b3480156107e057600080fd5b5060035461030390610100900460ff1681565b6000546001600160a01b031633146108265760405162461bcd60e51b815260040161081d90612255565b60405180910390fd5b600354610100900460ff16156108735760405162461bcd60e51b8152602060048201526012602482015271416c7265616479204c61756e63686564212160701b604482015260640161081d565b6003805461ff001916610100179055565b6000546001600160a01b031633146108ae5760405162461bcd60e51b815260040161081d90612255565b60005b82518110156109155781600a60008584815181106108d1576108d161228a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061090d816122b6565b9150506108b1565b505050565b606060018054610929906122cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610955906122cf565b80156109a25780601f10610977576101008083540402835291602001916109a2565b820191906000526020600020905b81548152906001019060200180831161098557829003601f168201915b5050505050905090565b6000546001600160a01b031633146109d65760405162461bcd60e51b815260040161081d90612255565b600c55565b60006109e8338484611438565b5060015b92915050565b60006109ff84848461155c565b50610a528433610a4d8560405180606001604052806028815260200161245d602891396001600160a01b038a166000908152600760209081526040808320338452909152902054919061191a565b611438565b5060015b9392505050565b6005546001600160a01b0316600090815260066020526040812054600d54610a8491611954565b905090565b3360008181526007602090815260408083206001600160a01b038716845290915281205490916109e8918590610a4d9086611996565b6000546001600160a01b03163314610ae95760405162461bcd60e51b815260040161081d90612255565b600e55565b6000546001600160a01b03163314610b185760405162461bcd60e51b815260040161081d90612255565b6003805462010000600160b01b031916620100006001600160a01b03939093169283021790556000908152600860205260409020805460ff19166001179055565b600080546001600160a01b03163314610b845760405162461bcd60e51b815260040161081d90612255565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610beb9190612309565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5c9190612309565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccb9190612309565b91506001600160a01b038216610e2257806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3d9190612309565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dae9190612309565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610dfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1f9190612309565b91505b601080546001600160a01b038085166001600160a01b03199283168117909355600f80549490911693909116929092179091556000908152600960205260409020805460ff19166001179055919050565b6000546001600160a01b03163314610e9d5760405162461bcd60e51b815260040161081d90612255565b306001600160a01b03831603610ef55760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742074616b65207468697320746f6b656e206f7574000000000000604482015260640161081d565b6040516370a0823160e01b815230600482015282906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610f3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f629190612326565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509083169063a9059cbb906044016020604051808303816000875af1158015610fb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd9919061233f565b5050505050565b6000546001600160a01b0316331461100a5760405162461bcd60e51b815260040161081d90612255565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461105f5760405162461bcd60e51b815260040161081d90612255565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b606060028054610929906122cf565b6000546001600160a01b031633146110e85760405162461bcd60e51b815260040161081d90612255565b600b55565b60006109e83384610a4d85604051806060016040528060258152602001612485602591393360009081526007602090815260408083206001600160a01b038d168452909152902054919061191a565b6000546001600160a01b031633146111665760405162461bcd60e51b815260040161081d90612255565b60108054911515600160b01b0260ff60b01b19909216919091179055565b6000610a5233848461155c565b6000546001600160a01b031633146111bb5760405162461bcd60e51b815260040161081d90612255565b60108054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061120890831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461123d5760405162461bcd60e51b815260040161081d90612255565b60005b82518110156109155781600860008584815181106112605761126061228a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061129c816122b6565b915050611240565b6000546001600160a01b031633146112ce5760405162461bcd60e51b815260040161081d90612255565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113235760405162461bcd60e51b815260040161081d90612255565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113785760405162461bcd60e51b815260040161081d90612255565b6001600160a01b0381166113dd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161081d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661149a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161081d565b6001600160a01b0382166114fb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161081d565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166115c25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161081d565b6001600160a01b0383166116245760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161081d565b61162d846119f5565b156116705760405162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b604482015260640161081d565b601054600160a01b900460ff16156116945761168d848484611a68565b9050610a56565b30600090815260066020526040902054600e54811080159081906116c25750601054600160a01b900460ff16155b80156116e757506001600160a01b03861660009081526009602052604090205460ff16155b80156116fc5750601054600160a81b900460ff165b1561172257601054600160b01b900460ff161561171957600e5491505b61172282611b4e565b600061175b61271061175561270f61174f8b6001600160a01b031660009081526006602052604090205490565b90611b8b565b90611c0d565b9050808511801561178557506001600160a01b03871660009081526008602052604090205460ff16155b1561178e578094505b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a166000908152600690915291909120546117e091879061191a565b6001600160a01b038816600090815260066020908152604080832093909355600890529081205460ff168061182d57506001600160a01b03871660009081526008602052604090205460ff165b1561183957508461188e565b600354610100900460ff166118805760405162461bcd60e51b815260206004820152600d60248201526c29bbb0b8103737ba1037b832b760991b604482015260640161081d565b61188b888888611c4f565b90505b6001600160a01b0387166000908152600660205260409020546118b19082611996565b6001600160a01b0380891660008181526006602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119059085815260200190565b60405180910390a36001945050505050610a56565b6000818484111561193e5760405162461bcd60e51b815260040161081d91906120e0565b50600061194b848661235c565b95945050505050565b6000610a5683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061191a565b6000806119a3838561236f565b905083811015610a565760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161081d565b6000306001600160a01b03831603611a0f57506000919050565b6001600160a01b03821660009081526009602052604090205460ff1615611a3857506000919050565b6001600160a01b0382166000908152600a602052604090205460ff16611a6057506000919050565b506001919050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611ab991849061191a565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611ae89083611996565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b3c9086815260200190565b60405180910390a35060019392505050565b6010805460ff60a01b1916600160a01b179055611b6a81611d55565b478015611b7a57611b7a81611ee8565b50506010805460ff60a01b19169055565b600082600003611b9d575060006109ec565b6000611ba98385612382565b905082611bb68583612399565b14610a565760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161081d565b6000610a5683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f84565b6001600160a01b038316600090815260096020526040812054819060ff1615611c9357611c8c6064611755600b5486611b8b90919063ffffffff16565b9050611cd1565b6001600160a01b03841660009081526009602052604090205460ff1615611cd157611cce6064611755600c5486611b8b90919063ffffffff16565b90505b8015611d4b5730600090815260066020526040902054611cf19082611996565b30600081815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d429085815260200190565b60405180910390a35b61194b8382611954565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d8a57611d8a61228a565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611de3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e079190612309565b81600181518110611e1a57611e1a61228a565b6001600160a01b039283166020918202929092010152600f54611e409130911684611438565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e799085906000908690309042906004016123ff565b600060405180830381600087803b158015611e9357600080fd5b505af1158015611ea7573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611edc92919061243b565b60405180910390a15050565b6003546040516000916201000090046001600160a01b031690620493e090849084818181858888f193505050503d8060008114611f41576040519150601f19603f3d011682016040523d82523d6000602084013e611f46565b606091505b5050905080611f805760405162461bcd60e51b815260206004820152600660248201526519985a5b195960d21b604482015260640161081d565b5050565b60008183611fa55760405162461bcd60e51b815260040161081d91906120e0565b50600061194b8486612399565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611fdd57600080fd5b50565b8035611feb81611fc8565b919050565b8015158114611fdd57600080fd5b8035611feb81611ff0565b6000806040838503121561201c57600080fd5b823567ffffffffffffffff8082111561203457600080fd5b818501915085601f83011261204857600080fd5b813560208282111561205c5761205c611fb2565b8160051b604051601f19603f8301168101818110868211171561208157612081611fb2565b60405292835281830193508481018201928984111561209f57600080fd5b948201945b838610156120c4576120b586611fe0565b855294820194938201936120a4565b96506120d39050878201611ffe565b9450505050509250929050565b600060208083528351808285015260005b8181101561210d578581018301518582016040015282016120f1565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561214057600080fd5b5035919050565b6000806040838503121561215a57600080fd5b823561216581611fc8565b946020939093013593505050565b60008060006060848603121561218857600080fd5b833561219381611fc8565b925060208401356121a381611fc8565b929592945050506040919091013590565b6000602082840312156121c657600080fd5b8135610a5681611fc8565b600080604083850312156121e457600080fd5b82356121ef81611fc8565b915060208301356121ff81611fc8565b809150509250929050565b6000806040838503121561221d57600080fd5b823561222881611fc8565b915060208301356121ff81611ff0565b60006020828403121561224a57600080fd5b8135610a5681611ff0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016122c8576122c86122a0565b5060010190565b600181811c908216806122e357607f821691505b60208210810361230357634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561231b57600080fd5b8151610a5681611fc8565b60006020828403121561233857600080fd5b5051919050565b60006020828403121561235157600080fd5b8151610a5681611ff0565b818103818111156109ec576109ec6122a0565b808201808211156109ec576109ec6122a0565b80820281158282048414176109ec576109ec6122a0565b6000826123b657634e487b7160e01b600052601260045260246000fd5b500490565b600081518084526020808501945080840160005b838110156123f45781516001600160a01b0316875295820195908201906001016123cf565b509495945050505050565b85815284602082015260a06040820152600061241e60a08301866123bb565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061245460408301846123bb565b94935050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122007b625c8de0ccd921bc58daa3610939b9a34d3f58e2c79831cfe26d7ac59206564736f6c63430008130033
Deployed Bytecode
0x6080604052600436106102555760003560e01c806382eefb4311610139578063b36d6919116100b6578063dd62ed3e1161007a578063dd62ed3e14610718578063e1764e7e1461075e578063ef422a181461077e578063f0cd1dac1461079e578063f2fde38b146107b4578063f5d588f5146107d457600080fd5b8063b36d69191461065e578063c49b9a8014610697578063c816841b146106b7578063cb39aa03146106d7578063da00097d146106f757600080fd5b8063a073d37f116100fd578063a073d37f146105c9578063a3ca847d146105de578063a457c2d7146105fe578063a5d69d1f1461061e578063a9059cbb1461063e57600080fd5b806382eefb431461054b578063844d591c146105615780638da5cb5b14610581578063914eb66a1461059f57806395d89b41146105b457600080fd5b8063313ce567116101d25780634cb80fd5116101965780634cb80fd5146104725780635342acb414610492578063557ed1ba146104c25780635881f3ef146104d55780636382d9ad146104f557806370a082311461051557600080fd5b8063313ce567146103bf57806339509351146103e15780633b97084a146104015780633ecad271146104215780634a74bb021461045157600080fd5b80631694505e116102195780631694505e1461031357806318160ddd1461034b57806323b872dd1461036a57806327c8f8351461038a5780632b112e49146103aa57600080fd5b806302ac816814610261578063068bd0fc1461027857806306fdde03146102985780630940bbc7146102c3578063095ea7b3146102e357600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b506102766107f3565b005b34801561028457600080fd5b50610276610293366004612009565b610884565b3480156102a457600080fd5b506102ad61091a565b6040516102ba91906120e0565b60405180910390f35b3480156102cf57600080fd5b506102766102de36600461212e565b6109ac565b3480156102ef57600080fd5b506103036102fe366004612147565b6109db565b60405190151581526020016102ba565b34801561031f57600080fd5b50600f54610333906001600160a01b031681565b6040516001600160a01b0390911681526020016102ba565b34801561035757600080fd5b50600d545b6040519081526020016102ba565b34801561037657600080fd5b50610303610385366004612173565b6109f2565b34801561039657600080fd5b50600554610333906001600160a01b031681565b3480156103b657600080fd5b5061035c610a5d565b3480156103cb57600080fd5b5060035460405160ff90911681526020016102ba565b3480156103ed57600080fd5b506103036103fc366004612147565b610a89565b34801561040d57600080fd5b5061027661041c36600461212e565b610abf565b34801561042d57600080fd5b5061030361043c3660046121b4565b60096020526000908152604090205460ff1681565b34801561045d57600080fd5b5060105461030390600160a81b900460ff1681565b34801561047e57600080fd5b5061027661048d3660046121b4565b610aee565b34801561049e57600080fd5b506103036104ad3660046121b4565b60086020526000908152604090205460ff1681565b3480156104ce57600080fd5b504261035c565b3480156104e157600080fd5b506103336104f03660046121b4565b610b59565b34801561050157600080fd5b506102766105103660046121d1565b610e73565b34801561052157600080fd5b5061035c6105303660046121b4565b6001600160a01b031660009081526006602052604090205490565b34801561055757600080fd5b5061035c600c5481565b34801561056d57600080fd5b5061027661057c36600461220a565b610fe0565b34801561058d57600080fd5b506000546001600160a01b0316610333565b3480156105ab57600080fd5b50610276611035565b3480156105c057600080fd5b506102ad6110af565b3480156105d557600080fd5b50600e5461035c565b3480156105ea57600080fd5b506102766105f936600461212e565b6110be565b34801561060a57600080fd5b50610303610619366004612147565b6110ed565b34801561062a57600080fd5b50610276610639366004612238565b61113c565b34801561064a57600080fd5b50610303610659366004612147565b611184565b34801561066a57600080fd5b506103036106793660046121b4565b6001600160a01b03166000908152600a602052604090205460ff1690565b3480156106a357600080fd5b506102766106b2366004612238565b611191565b3480156106c357600080fd5b50601054610333906001600160a01b031681565b3480156106e357600080fd5b506102766106f2366004612009565b611213565b34801561070357600080fd5b5060105461030390600160b01b900460ff1681565b34801561072457600080fd5b5061035c6107333660046121d1565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561076a57600080fd5b5061027661077936600461220a565b6112a4565b34801561078a57600080fd5b5061027661079936600461220a565b6112f9565b3480156107aa57600080fd5b5061035c600b5481565b3480156107c057600080fd5b506102766107cf3660046121b4565b61134e565b3480156107e057600080fd5b5060035461030390610100900460ff1681565b6000546001600160a01b031633146108265760405162461bcd60e51b815260040161081d90612255565b60405180910390fd5b600354610100900460ff16156108735760405162461bcd60e51b8152602060048201526012602482015271416c7265616479204c61756e63686564212160701b604482015260640161081d565b6003805461ff001916610100179055565b6000546001600160a01b031633146108ae5760405162461bcd60e51b815260040161081d90612255565b60005b82518110156109155781600a60008584815181106108d1576108d161228a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061090d816122b6565b9150506108b1565b505050565b606060018054610929906122cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610955906122cf565b80156109a25780601f10610977576101008083540402835291602001916109a2565b820191906000526020600020905b81548152906001019060200180831161098557829003601f168201915b5050505050905090565b6000546001600160a01b031633146109d65760405162461bcd60e51b815260040161081d90612255565b600c55565b60006109e8338484611438565b5060015b92915050565b60006109ff84848461155c565b50610a528433610a4d8560405180606001604052806028815260200161245d602891396001600160a01b038a166000908152600760209081526040808320338452909152902054919061191a565b611438565b5060015b9392505050565b6005546001600160a01b0316600090815260066020526040812054600d54610a8491611954565b905090565b3360008181526007602090815260408083206001600160a01b038716845290915281205490916109e8918590610a4d9086611996565b6000546001600160a01b03163314610ae95760405162461bcd60e51b815260040161081d90612255565b600e55565b6000546001600160a01b03163314610b185760405162461bcd60e51b815260040161081d90612255565b6003805462010000600160b01b031916620100006001600160a01b03939093169283021790556000908152600860205260409020805460ff19166001179055565b600080546001600160a01b03163314610b845760405162461bcd60e51b815260040161081d90612255565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610beb9190612309565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5c9190612309565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccb9190612309565b91506001600160a01b038216610e2257806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3d9190612309565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dae9190612309565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610dfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1f9190612309565b91505b601080546001600160a01b038085166001600160a01b03199283168117909355600f80549490911693909116929092179091556000908152600960205260409020805460ff19166001179055919050565b6000546001600160a01b03163314610e9d5760405162461bcd60e51b815260040161081d90612255565b306001600160a01b03831603610ef55760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742074616b65207468697320746f6b656e206f7574000000000000604482015260640161081d565b6040516370a0823160e01b815230600482015282906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610f3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f629190612326565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509083169063a9059cbb906044016020604051808303816000875af1158015610fb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd9919061233f565b5050505050565b6000546001600160a01b0316331461100a5760405162461bcd60e51b815260040161081d90612255565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461105f5760405162461bcd60e51b815260040161081d90612255565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b606060028054610929906122cf565b6000546001600160a01b031633146110e85760405162461bcd60e51b815260040161081d90612255565b600b55565b60006109e83384610a4d85604051806060016040528060258152602001612485602591393360009081526007602090815260408083206001600160a01b038d168452909152902054919061191a565b6000546001600160a01b031633146111665760405162461bcd60e51b815260040161081d90612255565b60108054911515600160b01b0260ff60b01b19909216919091179055565b6000610a5233848461155c565b6000546001600160a01b031633146111bb5760405162461bcd60e51b815260040161081d90612255565b60108054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061120890831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461123d5760405162461bcd60e51b815260040161081d90612255565b60005b82518110156109155781600860008584815181106112605761126061228a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061129c816122b6565b915050611240565b6000546001600160a01b031633146112ce5760405162461bcd60e51b815260040161081d90612255565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113235760405162461bcd60e51b815260040161081d90612255565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113785760405162461bcd60e51b815260040161081d90612255565b6001600160a01b0381166113dd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161081d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661149a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161081d565b6001600160a01b0382166114fb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161081d565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166115c25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161081d565b6001600160a01b0383166116245760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161081d565b61162d846119f5565b156116705760405162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b604482015260640161081d565b601054600160a01b900460ff16156116945761168d848484611a68565b9050610a56565b30600090815260066020526040902054600e54811080159081906116c25750601054600160a01b900460ff16155b80156116e757506001600160a01b03861660009081526009602052604090205460ff16155b80156116fc5750601054600160a81b900460ff165b1561172257601054600160b01b900460ff161561171957600e5491505b61172282611b4e565b600061175b61271061175561270f61174f8b6001600160a01b031660009081526006602052604090205490565b90611b8b565b90611c0d565b9050808511801561178557506001600160a01b03871660009081526008602052604090205460ff16155b1561178e578094505b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a166000908152600690915291909120546117e091879061191a565b6001600160a01b038816600090815260066020908152604080832093909355600890529081205460ff168061182d57506001600160a01b03871660009081526008602052604090205460ff165b1561183957508461188e565b600354610100900460ff166118805760405162461bcd60e51b815260206004820152600d60248201526c29bbb0b8103737ba1037b832b760991b604482015260640161081d565b61188b888888611c4f565b90505b6001600160a01b0387166000908152600660205260409020546118b19082611996565b6001600160a01b0380891660008181526006602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119059085815260200190565b60405180910390a36001945050505050610a56565b6000818484111561193e5760405162461bcd60e51b815260040161081d91906120e0565b50600061194b848661235c565b95945050505050565b6000610a5683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061191a565b6000806119a3838561236f565b905083811015610a565760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161081d565b6000306001600160a01b03831603611a0f57506000919050565b6001600160a01b03821660009081526009602052604090205460ff1615611a3857506000919050565b6001600160a01b0382166000908152600a602052604090205460ff16611a6057506000919050565b506001919050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611ab991849061191a565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611ae89083611996565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b3c9086815260200190565b60405180910390a35060019392505050565b6010805460ff60a01b1916600160a01b179055611b6a81611d55565b478015611b7a57611b7a81611ee8565b50506010805460ff60a01b19169055565b600082600003611b9d575060006109ec565b6000611ba98385612382565b905082611bb68583612399565b14610a565760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161081d565b6000610a5683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f84565b6001600160a01b038316600090815260096020526040812054819060ff1615611c9357611c8c6064611755600b5486611b8b90919063ffffffff16565b9050611cd1565b6001600160a01b03841660009081526009602052604090205460ff1615611cd157611cce6064611755600c5486611b8b90919063ffffffff16565b90505b8015611d4b5730600090815260066020526040902054611cf19082611996565b30600081815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d429085815260200190565b60405180910390a35b61194b8382611954565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d8a57611d8a61228a565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611de3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e079190612309565b81600181518110611e1a57611e1a61228a565b6001600160a01b039283166020918202929092010152600f54611e409130911684611438565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e799085906000908690309042906004016123ff565b600060405180830381600087803b158015611e9357600080fd5b505af1158015611ea7573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611edc92919061243b565b60405180910390a15050565b6003546040516000916201000090046001600160a01b031690620493e090849084818181858888f193505050503d8060008114611f41576040519150601f19603f3d011682016040523d82523d6000602084013e611f46565b606091505b5050905080611f805760405162461bcd60e51b815260206004820152600660248201526519985a5b195960d21b604482015260640161081d565b5050565b60008183611fa55760405162461bcd60e51b815260040161081d91906120e0565b50600061194b8486612399565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611fdd57600080fd5b50565b8035611feb81611fc8565b919050565b8015158114611fdd57600080fd5b8035611feb81611ff0565b6000806040838503121561201c57600080fd5b823567ffffffffffffffff8082111561203457600080fd5b818501915085601f83011261204857600080fd5b813560208282111561205c5761205c611fb2565b8160051b604051601f19603f8301168101818110868211171561208157612081611fb2565b60405292835281830193508481018201928984111561209f57600080fd5b948201945b838610156120c4576120b586611fe0565b855294820194938201936120a4565b96506120d39050878201611ffe565b9450505050509250929050565b600060208083528351808285015260005b8181101561210d578581018301518582016040015282016120f1565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561214057600080fd5b5035919050565b6000806040838503121561215a57600080fd5b823561216581611fc8565b946020939093013593505050565b60008060006060848603121561218857600080fd5b833561219381611fc8565b925060208401356121a381611fc8565b929592945050506040919091013590565b6000602082840312156121c657600080fd5b8135610a5681611fc8565b600080604083850312156121e457600080fd5b82356121ef81611fc8565b915060208301356121ff81611fc8565b809150509250929050565b6000806040838503121561221d57600080fd5b823561222881611fc8565b915060208301356121ff81611ff0565b60006020828403121561224a57600080fd5b8135610a5681611ff0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016122c8576122c86122a0565b5060010190565b600181811c908216806122e357607f821691505b60208210810361230357634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561231b57600080fd5b8151610a5681611fc8565b60006020828403121561233857600080fd5b5051919050565b60006020828403121561235157600080fd5b8151610a5681611ff0565b818103818111156109ec576109ec6122a0565b808201808211156109ec576109ec6122a0565b80820281158282048414176109ec576109ec6122a0565b6000826123b657634e487b7160e01b600052601260045260246000fd5b500490565b600081518084526020808501945080840160005b838110156123f45781516001600160a01b0316875295820195908201906001016123cf565b509495945050505050565b85815284602082015260a06040820152600061241e60a08301866123bb565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061245460408301846123bb565b94935050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122007b625c8de0ccd921bc58daa3610939b9a34d3f58e2c79831cfe26d7ac59206564736f6c63430008130033
Deployed Bytecode Sourcemap
30030:276:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21337:120;;;;;;;;;;;;;:::i;:::-;;24871:238;;;;;;;;;;-1:-1:-1;24871:238:0;;;;;:::i;:::-;;:::i;19188:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21943:121;;;;;;;;;;-1:-1:-1;21943:121:0;;;;;:::i;:::-;;:::i;20736:193::-;;;;;;;;;;-1:-1:-1;20736:193:0;;;;;:::i;:::-;;:::i;:::-;;;3096:14:1;;3089:22;3071:41;;3059:2;3044:18;20736:193:0;2931:187:1;17360:41:0;;;;;;;;;;-1:-1:-1;17360:41:0;;;;-1:-1:-1;;;;;17360:41:0;;;;;;-1:-1:-1;;;;;3314:32:1;;;3296:51;;3284:2;3269:18;17360:41:0;3123:230:1;19465:100:0;;;;;;;;;;-1:-1:-1;19545:12:0;;19465:100;;;3504:25:1;;;3492:2;3477:18;19465:100:0;3358:177:1;24138:446:0;;;;;;;;;;-1:-1:-1;24138:446:0;;;;;:::i;:::-;;:::i;16679:71::-;;;;;;;;;;-1:-1:-1;16679:71:0;;;;-1:-1:-1;;;;;16679:71:0;;;22706:128;;;;;;;;;;;;;:::i;19374:83::-;;;;;;;;;;-1:-1:-1;19440:9:0;;19374:83;;19440:9;;;;4351:36:1;;4339:2;4324:18;19374:83:0;4209:184:1;19892:300:0;;;;;;;;;;-1:-1:-1;19892:300:0;;;;;:::i;:::-;;:::i;22072:122::-;;;;;;;;;;-1:-1:-1;22072:122:0;;;;;:::i;:::-;;:::i;16935:44::-;;;;;;;;;;-1:-1:-1;16935:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17471:40;;;;;;;;;;-1:-1:-1;17471:40:0;;;;-1:-1:-1;;;17471:40:0;;;;;;22202:184;;;;;;;;;;-1:-1:-1;22202:184:0;;;;;:::i;:::-;;:::i;16879:49::-;;;;;;;;;;-1:-1:-1;16879:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7048:90;;;;;;;;;;-1:-1:-1;7115:15:0;7048:90;;22990:840;;;;;;;;;;-1:-1:-1;22990:840:0;;;;;:::i;:::-;;:::i;29697:326::-;;;;;;;;;;-1:-1:-1;29697:326:0;;;;;:::i;:::-;;:::i;19573:119::-;;;;;;;;;;-1:-1:-1;19573:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;19666:18:0;19639:7;19666:18;;;:9;:18;;;;;;;19573:119;17108:37;;;;;;;;;;;;;;;;21465:152;;;;;;;;;;-1:-1:-1;21465:152:0;;;;;:::i;:::-;;:::i;6382:79::-;;;;;;;;;;-1:-1:-1;6420:7:0;6447:6;-1:-1:-1;;;;;6447:6:0;6382:79;;6596:155;;;;;;;;;;;;;:::i;19279:87::-;;;;;;;;;;;;;:::i;20608:120::-;;;;;;;;;;-1:-1:-1;20697:23:0;;20608:120;;21816:119;;;;;;;;;;-1:-1:-1;21816:119:0;;;;;:::i;:::-;;:::i;20200:400::-;;;;;;;;;;-1:-1:-1;20200:400:0;;;;;:::i;:::-;;:::i;22573:125::-;;;;;;;;;;-1:-1:-1;22573:125:0;;;;;:::i;:::-;;:::i;23931:199::-;;;;;;;;;;-1:-1:-1;23931:199:0;;;;;:::i;:::-;;:::i;24592:114::-;;;;;;;;;;-1:-1:-1;24592:114:0;;;;;:::i;:::-;-1:-1:-1;;;;;24675:23:0;24651:4;24675:23;;;:14;:23;;;;;;;;;24592:114;22394:171;;;;;;;;;;-1:-1:-1;22394:171:0;;;;;:::i;:::-;;:::i;17408:26::-;;;;;;;;;;-1:-1:-1;17408:26:0;;;;-1:-1:-1;;;;;17408:26:0;;;25117:241;;;;;;;;;;-1:-1:-1;25117:241:0;;;;;:::i;:::-;;:::i;17518:45::-;;;;;;;;;;-1:-1:-1;17518:45:0;;;;-1:-1:-1;;;17518:45:0;;;;;;19700:184;;;;;;;;;;-1:-1:-1;19700:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;19849:18:0;;;19817:7;19849:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19700:184;24735:128;;;;;;;;;;-1:-1:-1;24735:128:0;;;;;:::i;:::-;;:::i;21650:158::-;;;;;;;;;;-1:-1:-1;21650:158:0;;;;;:::i;:::-;;:::i;17065:36::-;;;;;;;;;;;;;;;;6759:281;;;;;;;;;;-1:-1:-1;6759:281:0;;;;;:::i;:::-;;:::i;16549:28::-;;;;;;;;;;-1:-1:-1;16549:28:0;;;;;;;;;;;21337:120;6509:6;;-1:-1:-1;;;;;6509:6:0;191:10;6509:22;6501:67;;;;-1:-1:-1;;;6501:67:0;;;;;;;:::i;:::-;;;;;;;;;21392:8:::1;::::0;::::1;::::0;::::1;;;21391:9;21383:40;;;::::0;-1:-1:-1;;;21383:40:0;;6239:2:1;21383:40:0::1;::::0;::::1;6221:21:1::0;6278:2;6258:18;;;6251:30;-1:-1:-1;;;6297:18:1;;;6290:48;6355:18;;21383:40:0::1;6037:342:1::0;21383:40:0::1;21434:8;:15:::0;;-1:-1:-1;;21434:15:0::1;;;::::0;;21337:120::o;24871:238::-;6509:6;;-1:-1:-1;;;;;6509:6:0;191:10;6509:22;6501:67;;;;-1:-1:-1;;;6501:67:0;;;;;;;:::i;:::-;24995:9:::1;24990:112;25014:9;:16;25010:1;:20;24990:112;;;25083:7;25052:14;:28;25067:9;25077:1;25067:12;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;25052:28:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;25052:28:0;:38;;-1:-1:-1;;25052:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25032:3;::::1;::::0;::::1;:::i;:::-;;;;24990:112;;;;24871:238:::0;;:::o;19188:83::-;19225:13;19258:5;19251:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19188:83;:::o;21943:121::-;6509:6;;-1:-1:-1;;;;;6509:6:0;191:10;6509:22;6501:67;;;;-1:-1:-1;;;6501:67:0;;;;;;;:::i;:::-;22020:18:::1;:36:::0;21943:121::o;20736:193::-;20838:4;20860:39;191:10;20883:7;20892:6;20860:8;:39::i;:::-;-1:-1:-1;20917:4:0;20736:193;;;;;:::o;24138:446::-;24270:4;24287:36;24297:6;24305:9;24316:6;24287:9;:36::i;:::-;-1:-1:-1;24334:220:0;24357:6;191:10;24405:138;24461:6;24405:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24405:19:0;;;;;;:11;:19;;;;;;;;191:10;24405:33;;;;;;;;;;:37;:138::i;:::-;24334:8;:220::i;:::-;-1:-1:-1;24572:4:0;24138:446;;;;;;:::o;22706:128::-;22813:11;;-1:-1:-1;;;;;22813:11:0;22759:7;19666:18;;;:9;:18;;;;;;22786:12;;:40;;:16;:40::i;:::-;22779:47;;22706:128;:::o;19892:300::-;191:10;20007:4;20101:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;20101:34:0;;;;;;;;;;20007:4;;20029:133;;20079:7;;20101:50;;20140:10;20101:38;:50::i;22072:122::-;6509:6;;-1:-1:-1;;;;;6509:6:0;191:10;6509:22;6501:67;;;;-1:-1:-1;;;6501:67:0;;;;;;;:::i;:::-;22152:23:::1;:34:::0;22072:122::o;22202:184::-;6509:6;;-1:-1:-1;;;;;6509:6:0;191:10;6509:22;6501:67;;;;-1:-1:-1;;;6501:67:0;;;;;;;:::i;:::-;22287:22:::1;:44:::0;;-1:-1:-1;;;;;;22287:44:0::1;::::0;-1:-1:-1;;;;;22287:44:0;;;::::1;::::0;;::::1;;::::0;;-1:-1:-1;22342:29:0;;;:17:::1;:29;::::0;;;;:36;;-1:-1:-1;;22342:36:0::1;-1:-1:-1::0;22342:36:0::1;::::0;;22202:184::o;22990:840::-;23098:22;6509:6;;-1:-1:-1;;;;;6509:6:0;191:10;6509:22;6501:67;;;;-1:-1:-1;;;6501:67:0;;;;;;;:::i;:::-;23138:35:::1;23209:16;23138:98;;23284:16;-1:-1:-1::0;;;;;23284:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23266:53:0::1;;23342:4;23362:16;-1:-1:-1::0;;;;;23362:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23266:130;::::0;-1:-1:-1;;;;;;23266:130:0::1;::::0;;;;;;-1:-1:-1;;;;;7659:15:1;;;23266:130:0::1;::::0;::::1;7641:34:1::0;7711:15;;7691:18;;;7684:43;7576:18;;23266:130:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23249:147:::0;-1:-1:-1;;;;;;23413:28:0;::::1;23409:226;;23527:16;-1:-1:-1::0;;;;;23527:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23509:74:0::1;;23592:4;23599:16;-1:-1:-1::0;;;;;23599:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23509:114;::::0;-1:-1:-1;;;;;;23509:114:0::1;::::0;;;;;;-1:-1:-1;;;;;7659:15:1;;;23509:114:0::1;::::0;::::1;7641:34:1::0;7711:15;;7691:18;;;7684:43;7576:18;;23509:114:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23492:131;;23409:226;23647:11;:28:::0;;-1:-1:-1;;;;;23647:28:0;;::::1;-1:-1:-1::0;;;;;;23647:28:0;;::::1;::::0;::::1;::::0;;;23709:15:::1;:34:::0;;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;23647:11:::1;23781:34:::0;;;:12:::1;:34;::::0;;;;:41;;-1:-1:-1;;23781:41:0::1;23647:28:::0;23781:41:::1;::::0;;23661:14;22990:840;-1:-1:-1;22990:840:0:o;29697:326::-;6509:6;;-1:-1:-1;;;;;6509:6:0;191:10;6509:22;6501:67;;;;-1:-1:-1;;;6501:67:0;;;;;;;:::i;:::-;29831:4:::1;-1:-1:-1::0;;;;;29814:22:0;::::1;::::0;29806:61:::1;;;::::0;-1:-1:-1;;;29806:61:0;;7940:2:1;29806:61:0::1;::::0;::::1;7922:21:1::0;7979:2;7959:18;;;7952:30;8018:28;7998:18;;;7991:56;8064:18;;29806:61:0::1;7738:350:1::0;29806:61:0::1;29941:31;::::0;-1:-1:-1;;;29941:31:0;;29966:4:::1;29941:31;::::0;::::1;3296:51:1::0;29901:5:0;;29878:13:::1;::::0;-1:-1:-1;;;;;29941:16:0;::::1;::::0;::::1;::::0;3269:18:1;;29941:31:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29983:32;::::0;-1:-1:-1;;;29983:32:0;;-1:-1:-1;;;;;8474:32:1;;;29983::0::1;::::0;::::1;8456:51:1::0;8523:18;;;8516:34;;;29918:54:0;;-1:-1:-1;29983:15:0;;::::1;::::0;::::1;::::0;8429:18:1;;29983:32:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;29795:228;;29697:326:::0;;:::o;21465:152::-;6509:6;;-1:-1:-1;;;;;6509:6:0;191:10;6509:22;6501:67;;;;-1:-1:-1;;;6501:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21577:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;21577:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21465:152::o;6596:155::-;6509:6;;-1:-1:-1;;;;;6509:6:0;191:10;6509:22;6501:67;;;;-1:-1:-1;;;6501:67:0;;;;;;;:::i;:::-;6684:6:::1;::::0;;6663:45:::1;::::0;6700:6:::1;::::0;-1:-1:-1;;;;;6684:6:0;;::::1;::::0;6663:45:::1;::::0;::::1;6719:6;:24:::0;;-1:-1:-1;;;;;;6719:24:0::1;6736:6;6719:24;::::0;;6596:155::o;19279:87::-;19318:13;19351:7;19344:14;;;;;:::i;21816:119::-;6509:6;;-1:-1:-1;;;;;6509:6:0;191:10;6509:22;6501:67;;;;-1:-1:-1;;;6501:67:0;;;;;;;:::i;:::-;21892:17:::1;:35:::0;21816:119::o;20200:400::-;20320:4;20342:228;191:10;20392:7;20414:145;20471:15;20414:145;;;;;;;;;;;;;;;;;191:10;20414:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;20414:34:0;;;;;;;;;;;;:38;:145::i;22573:125::-;6509:6;;-1:-1:-1;;;;;6509:6:0;191:10;6509:22;6501:67;;;;-1:-1:-1;;;6501:67:0;;;;;;;:::i;:::-;22654:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;22654:36:0::1;-1:-1:-1::0;;;;22654:36:0;;::::1;::::0;;;::::1;::::0;;22573:125::o;23931:199::-;24036:4;24058:42;191:10;24082:9;24093:6;24058:9;:42::i;22394:171::-;6509:6;;-1:-1:-1;;;;;6509:6:0;191:10;6509:22;6501:67;;;;-1:-1:-1;;;6501:67:0;;;;;;;:::i;:::-;22471:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;22471:32:0::1;-1:-1:-1::0;;;;22471:32:0;;::::1;;::::0;;22519:38:::1;::::0;::::1;::::0;::::1;::::0;22495:8;3096:14:1;3089:22;3071:41;;3059:2;3044:18;;2931:187;22519:38:0::1;;;;;;;;22394:171:::0;:::o;25117:241::-;6509:6;;-1:-1:-1;;;;;6509:6:0;191:10;6509:22;6501:67;;;;-1:-1:-1;;;6501:67:0;;;;;;;:::i;:::-;25241:9:::1;25236:115;25260:9;:16;25256:1;:20;25236:115;;;25332:7;25298:17;:31;25316:9;25326:1;25316:12;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;25298:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;25298:31:0;:41;;-1:-1:-1;;25298:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25278:3;::::1;::::0;::::1;:::i;:::-;;;;25236:115;;24735:128:::0;6509:6;;-1:-1:-1;;;;;6509:6:0;191:10;6509:22;6501:67;;;;-1:-1:-1;;;6501:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24820:25:0;;;::::1;;::::0;;;:14:::1;:25;::::0;;;;:35;;-1:-1:-1;;24820:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24735:128::o;21650:158::-;6509:6;;-1:-1:-1;;;;;6509:6:0;191:10;6509:22;6501:67;;;;-1:-1:-1;;;6501:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21763:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;21763:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21650:158::o;6759:281::-;6509:6;;-1:-1:-1;;;;;6509:6:0;191:10;6509:22;6501:67;;;;-1:-1:-1;;;6501:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6862:22:0;::::1;6840:110;;;::::0;-1:-1:-1;;;6840:110:0;;9013:2:1;6840:110:0::1;::::0;::::1;8995:21:1::0;9052:2;9032:18;;;9025:30;9091:34;9071:18;;;9064:62;-1:-1:-1;;;9142:18:1;;;9135:36;9188:19;;6840:110:0::1;8811:402:1::0;6840:110:0::1;6987:6;::::0;;6966:38:::1;::::0;-1:-1:-1;;;;;6966:38:0;;::::1;::::0;6987:6;::::1;::::0;6966:38:::1;::::0;::::1;7015:6;:17:::0;;-1:-1:-1;;;;;;7015:17:0::1;-1:-1:-1::0;;;;;7015:17:0;;;::::1;::::0;;;::::1;::::0;;6759:281::o;20937:371::-;-1:-1:-1;;;;;21064:19:0;;21056:68;;;;-1:-1:-1;;;21056:68:0;;9420:2:1;21056:68:0;;;9402:21:1;9459:2;9439:18;;;9432:30;9498:34;9478:18;;;9471:62;-1:-1:-1;;;9549:18:1;;;9542:34;9593:19;;21056:68:0;9218:400:1;21056:68:0;-1:-1:-1;;;;;21143:21:0;;21135:68;;;;-1:-1:-1;;;21135:68:0;;9825:2:1;21135:68:0;;;9807:21:1;9864:2;9844:18;;;9837:30;9903:34;9883:18;;;9876:62;-1:-1:-1;;;9954:18:1;;;9947:32;9996:19;;21135:68:0;9623:398:1;21135:68:0;-1:-1:-1;;;;;21216:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;21268:32;;3504:25:1;;;21268:32:0;;3477:18:1;21268:32:0;;;;;;;20937:371;;;:::o;25700:1844::-;25821:4;-1:-1:-1;;;;;25846:20:0;;25838:70;;;;-1:-1:-1;;;25838:70:0;;10228:2:1;25838:70:0;;;10210:21:1;10267:2;10247:18;;;10240:30;10306:34;10286:18;;;10279:62;-1:-1:-1;;;10357:18:1;;;10350:35;10402:19;;25838:70:0;10026:401:1;25838:70:0;-1:-1:-1;;;;;25927:23:0;;25919:71;;;;-1:-1:-1;;;25919:71:0;;10634:2:1;25919:71:0;;;10616:21:1;10673:2;10653:18;;;10646:30;10712:34;10692:18;;;10685:62;-1:-1:-1;;;10763:18:1;;;10756:33;10806:19;;25919:71:0;10432:399:1;25919:71:0;26010:19;26022:6;26010:11;:19::i;:::-;26009:20;26001:52;;;;-1:-1:-1;;;26001:52:0;;11038:2:1;26001:52:0;;;11020:21:1;11077:2;11057:18;;;11050:30;-1:-1:-1;;;11096:18:1;;;11089:49;11155:18;;26001:52:0;10836:343:1;26001:52:0;26070:16;;-1:-1:-1;;;26070:16:0;;;;26066:1471;;;26110:41;26125:6;26133:9;26144:6;26110:14;:41::i;:::-;26103:48;;;;26066:1471;26233:4;26184:28;19666:18;;;:9;:18;;;;;;26326:23;;26285:64;;;;;;;26388:61;;-1:-1:-1;26433:16:0;;-1:-1:-1;;;26433:16:0;;;;26432:17;26388:61;:103;;;;-1:-1:-1;;;;;;26471:20:0;;;;;;:12;:20;;;;;;;;26470:21;26388:103;:145;;;;-1:-1:-1;26512:21:0;;-1:-1:-1;;;26512:21:0;;;;26388:145;26366:371;;;26572:25;;-1:-1:-1;;;26572:25:0;;;;26568:98;;;26643:23;;26620:46;;26568:98;26685:36;26700:20;26685:14;:36::i;:::-;26753:15;26771:38;26803:5;26771:27;26793:4;26771:17;26781:6;-1:-1:-1;;;;;19666:18:0;19639:7;19666:18;;;:9;:18;;;;;;;19573:119;26771:17;:21;;:27::i;:::-;:31;;:38::i;:::-;26753:56;;26839:7;26830:6;:16;:46;;;;-1:-1:-1;;;;;;26851:25:0;;;;;;:17;:25;;;;;;;;26850:26;26830:46;26826:85;;;26904:7;26895:16;;26826:85;26948:102;;;;;;;;;;;-1:-1:-1;;;26948:102:0;;;;;;;;-1:-1:-1;;;;;26948:17:0;;-1:-1:-1;26948:17:0;;;:9;:17;;;;;;;;:102;;26988:6;;26948:21;:102::i;:::-;-1:-1:-1;;;;;26928:17:0;;;;;;:9;:17;;;;;;;;:122;;;;27105:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;27134:28:0;;;;;;:17;:28;;;;;;;;27105:57;27101:260;;;-1:-1:-1;27197:6:0;27101:260;;;27252:8;;;;;;;27244:34;;;;-1:-1:-1;;;27244:34:0;;11386:2:1;27244:34:0;;;11368:21:1;11425:2;11405:18;;;11398:30;-1:-1:-1;;;11444:18:1;;;11437:43;11497:18;;27244:34:0;11184:337:1;27244:34:0;27311;27319:6;27327:9;27338:6;27311:7;:34::i;:::-;27297:48;;27101:260;-1:-1:-1;;;;;27400:20:0;;;;;;:9;:20;;;;;;:37;;27425:11;27400:24;:37::i;:::-;-1:-1:-1;;;;;27377:20:0;;;;;;;:9;:20;;;;;;;:60;;;;27459:40;;;;;;;;;;27487:11;3504:25:1;;3492:2;3477:18;;3358:177;27459:40:0;;;;;;;;27521:4;27514:11;;;;;;;;1617:226;1737:7;1773:12;1765:6;;;;1757:29;;;;-1:-1:-1;;;1757:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1797:9:0;1809:5;1813:1;1809;:5;:::i;:::-;1797:17;1617:226;-1:-1:-1;;;;;1617:226:0:o;1473:136::-;1531:7;1558:43;1562:1;1565;1558:43;;;;;;;;;;;;;;;;;:3;:43::i;1284:181::-;1342:7;;1374:5;1378:1;1374;:5;:::i;:::-;1362:17;;1403:1;1398;:6;;1390:46;;;;-1:-1:-1;;;1390:46:0;;11991:2:1;1390:46:0;;;11973:21:1;12030:2;12010:18;;;12003:30;12069:29;12049:18;;;12042:57;12116:18;;1390:46:0;11789:351:1;25366:326:0;25433:4;25528;-1:-1:-1;;;;;25503:30:0;;;25499:48;;-1:-1:-1;25542:5:0;;25366:326;-1:-1:-1;25366:326:0:o;25499:48::-;-1:-1:-1;;;;;25562:27:0;;;;;;:12;:27;;;;;;;;25558:45;;;-1:-1:-1;25598:5:0;;25366:326;-1:-1:-1;25366:326:0:o;25558:45::-;-1:-1:-1;;;;;25619:29:0;;;;;;:14;:29;;;;;;;;25614:48;;-1:-1:-1;25657:5:0;;25366:326;-1:-1:-1;25366:326:0:o;25614:48::-;-1:-1:-1;25680:4:0;;25366:326;-1:-1:-1;25366:326:0:o;27552:401::-;27716:90;;;;;;;;;;;-1:-1:-1;;;27716:90:0;;;;;;;;-1:-1:-1;;;;;27716:17:0;;27679:4;27716:17;;;:9;:17;;;;;;;:90;;27752:6;;27716:21;:90::i;:::-;-1:-1:-1;;;;;27696:17:0;;;;;;;:9;:17;;;;;;:110;;;;27840:20;;;;;;;:32;;27865:6;27840:24;:32::i;:::-;-1:-1:-1;;;;;27817:20:0;;;;;;;:9;:20;;;;;;;:55;;;;27888:35;;;;;;;;;;27916:6;3504:25:1;;3492:2;3477:18;;3358:177;27888:35:0;;;;;;;;-1:-1:-1;27941:4:0;27552:401;;;;;:::o;27961:224::-;17926:16;:23;;-1:-1:-1;;;;17926:23:0;-1:-1:-1;;;17926:23:0;;;28033:25:::1;28050:7:::0;28033:16:::1;:25::i;:::-;28094:21;28130:18:::0;;28126:51:::1;;28150:27;28162:14;28150:11;:27::i;:::-;-1:-1:-1::0;;17972:16:0;:24;;-1:-1:-1;;;;17972:24:0;;;27961:224::o;1851:250::-;1909:7;1933:1;1938;1933:6;1929:47;;-1:-1:-1;1963:1:0;1956:8;;1929:47;1988:9;2000:5;2004:1;2000;:5;:::i;:::-;1988:17;-1:-1:-1;2033:1:0;2024:5;2028:1;1988:17;2024:5;:::i;:::-;:10;2016:56;;;;-1:-1:-1;;;2016:56:0;;12742:2:1;2016:56:0;;;12724:21:1;12781:2;12761:18;;;12754:30;12820:34;12800:18;;;12793:62;-1:-1:-1;;;12871:18:1;;;12864:31;12912:19;;2016:56:0;12540:397:1;2109:132:0;2167:7;2194:39;2198:1;2201;2194:39;;;;;;;;;;;;;;;;;:3;:39::i;29065:624::-;-1:-1:-1;;;;;29243:20:0;;29185:7;29243:20;;;:12;:20;;;;;;29185:7;;29243:20;;29239:216;;;29292:38;29326:3;29292:29;29303:17;;29292:6;:10;;:29;;;;:::i;:38::-;29280:50;;29239:216;;;-1:-1:-1;;;;;29352:23:0;;;;;;:12;:23;;;;;;;;29348:107;;;29404:39;29439:3;29404:30;29415:18;;29404:6;:10;;:30;;;;:::i;:39::-;29392:51;;29348:107;29471:13;;29467:174;;29546:4;29528:24;;;;:9;:24;;;;;;:39;;29557:9;29528:28;:39::i;:::-;29519:4;29501:24;;;;:9;:24;;;;;;;:66;;;;29587:42;;-1:-1:-1;;;;;29587:42:0;;;;;;;29619:9;3504:25:1;;3492:2;3477:18;;3358:177;29587:42:0;;;;;;;;29467:174;29660:21;:6;29671:9;29660:10;:21::i;28399:658::-;28549:16;;;28563:1;28549:16;;;;;;;;28525:21;;28549:16;;;;;;;;;;-1:-1:-1;28549:16:0;28525:40;;28594:4;28576;28581:1;28576:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;28576:23:0;;;:7;;;;;;;;;;:23;;;;28620:15;;:22;;;-1:-1:-1;;;28620:22:0;;;;:15;;;;;:20;;:22;;;;;28576:7;;28620:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28610:4;28615:1;28610:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;28610:32:0;;;:7;;;;;;;;;:32;28687:15;;28655:62;;28672:4;;28687:15;28705:11;28655:8;:62::i;:::-;28756:15;;:240;;-1:-1:-1;;;28756:240:0;;-1:-1:-1;;;;;28756:15:0;;;;:66;;:240;;28837:11;;28756:15;;28907:4;;28934;;28970:15;;28756:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29014:35;29031:11;29044:4;29014:35;;;;;;;:::i;:::-;;;;;;;;28454:603;28399:658;:::o;28193:198::-;28266:22;;:83;;28251:9;;28266:22;;;-1:-1:-1;;;;;28266:22:0;;28314:6;;28301;;28251:9;28266:83;28251:9;28266:83;28301:6;28266:22;28314:6;28266:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28250:99;;;28368:4;28360:23;;;;-1:-1:-1;;;28360:23:0;;14744:2:1;28360:23:0;;;14726:21:1;14783:1;14763:18;;;14756:29;-1:-1:-1;;;14801:18:1;;;14794:36;14847:18;;28360:23:0;14542:329:1;28360:23:0;28239:152;28193:198;:::o;2249:312::-;2369:7;2404:12;2397:5;2389:28;;;;-1:-1:-1;;;2389:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2428:9:0;2440:5;2444:1;2440;:5;:::i;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;201:70;146:131;:::o;282:134::-;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:118::-;507:5;500:13;493:21;486:5;483:32;473:60;;529:1;526;519:12;544:128;609:20;;638:28;609:20;638:28;:::i;677:1191::-;767:6;775;828:2;816:9;807:7;803:23;799:32;796:52;;;844:1;841;834:12;796:52;884:9;871:23;913:18;954:2;946:6;943:14;940:34;;;970:1;967;960:12;940:34;1008:6;997:9;993:22;983:32;;1053:7;1046:4;1042:2;1038:13;1034:27;1024:55;;1075:1;1072;1065:12;1024:55;1111:2;1098:16;1133:4;1156:2;1152;1149:10;1146:36;;;1162:18;;:::i;:::-;1208:2;1205:1;1201:10;1240:2;1234:9;1303:2;1299:7;1294:2;1290;1286:11;1282:25;1274:6;1270:38;1358:6;1346:10;1343:22;1338:2;1326:10;1323:18;1320:46;1317:72;;;1369:18;;:::i;:::-;1405:2;1398:22;1455:18;;;1489:15;;;;-1:-1:-1;1531:11:1;;;1527:20;;;1559:19;;;1556:39;;;1591:1;1588;1581:12;1556:39;1615:11;;;;1635:148;1651:6;1646:3;1643:15;1635:148;;;1717:23;1736:3;1717:23;:::i;:::-;1705:36;;1668:12;;;;1761;;;;1635:148;;;1802:6;-1:-1:-1;1827:35:1;;-1:-1:-1;1843:18:1;;;1827:35;:::i;:::-;1817:45;;;;;;677:1191;;;;;:::o;1873:548::-;1985:4;2014:2;2043;2032:9;2025:21;2075:6;2069:13;2118:6;2113:2;2102:9;2098:18;2091:34;2143:1;2153:140;2167:6;2164:1;2161:13;2153:140;;;2262:14;;;2258:23;;2252:30;2228:17;;;2247:2;2224:26;2217:66;2182:10;;2153:140;;;2157:3;2342:1;2337:2;2328:6;2317:9;2313:22;2309:31;2302:42;2412:2;2405;2401:7;2396:2;2388:6;2384:15;2380:29;2369:9;2365:45;2361:54;2353:62;;;;1873:548;;;;:::o;2426:180::-;2485:6;2538:2;2526:9;2517:7;2513:23;2509:32;2506:52;;;2554:1;2551;2544:12;2506:52;-1:-1:-1;2577:23:1;;2426:180;-1:-1:-1;2426:180:1:o;2611:315::-;2679:6;2687;2740:2;2728:9;2719:7;2715:23;2711:32;2708:52;;;2756:1;2753;2746:12;2708:52;2795:9;2782:23;2814:31;2839:5;2814:31;:::i;:::-;2864:5;2916:2;2901:18;;;;2888:32;;-1:-1:-1;;;2611:315:1:o;3540:456::-;3617:6;3625;3633;3686:2;3674:9;3665:7;3661:23;3657:32;3654:52;;;3702:1;3699;3692:12;3654:52;3741:9;3728:23;3760:31;3785:5;3760:31;:::i;:::-;3810:5;-1:-1:-1;3867:2:1;3852:18;;3839:32;3880:33;3839:32;3880:33;:::i;:::-;3540:456;;3932:7;;-1:-1:-1;;;3986:2:1;3971:18;;;;3958:32;;3540:456::o;4398:247::-;4457:6;4510:2;4498:9;4489:7;4485:23;4481:32;4478:52;;;4526:1;4523;4516:12;4478:52;4565:9;4552:23;4584:31;4609:5;4584:31;:::i;4650:388::-;4718:6;4726;4779:2;4767:9;4758:7;4754:23;4750:32;4747:52;;;4795:1;4792;4785:12;4747:52;4834:9;4821:23;4853:31;4878:5;4853:31;:::i;:::-;4903:5;-1:-1:-1;4960:2:1;4945:18;;4932:32;4973:33;4932:32;4973:33;:::i;:::-;5025:7;5015:17;;;4650:388;;;;;:::o;5043:382::-;5108:6;5116;5169:2;5157:9;5148:7;5144:23;5140:32;5137:52;;;5185:1;5182;5175:12;5137:52;5224:9;5211:23;5243:31;5268:5;5243:31;:::i;:::-;5293:5;-1:-1:-1;5350:2:1;5335:18;;5322:32;5363:30;5322:32;5363:30;:::i;5430:241::-;5486:6;5539:2;5527:9;5518:7;5514:23;5510:32;5507:52;;;5555:1;5552;5545:12;5507:52;5594:9;5581:23;5613:28;5635:5;5613:28;:::i;5676:356::-;5878:2;5860:21;;;5897:18;;;5890:30;5956:34;5951:2;5936:18;;5929:62;6023:2;6008:18;;5676:356::o;6384:127::-;6445:10;6440:3;6436:20;6433:1;6426:31;6476:4;6473:1;6466:15;6500:4;6497:1;6490:15;6516:127;6577:10;6572:3;6568:20;6565:1;6558:31;6608:4;6605:1;6598:15;6632:4;6629:1;6622:15;6648:135;6687:3;6708:17;;;6705:43;;6728:18;;:::i;:::-;-1:-1:-1;6775:1:1;6764:13;;6648:135::o;6788:380::-;6867:1;6863:12;;;;6910;;;6931:61;;6985:4;6977:6;6973:17;6963:27;;6931:61;7038:2;7030:6;7027:14;7007:18;7004:38;7001:161;;7084:10;7079:3;7075:20;7072:1;7065:31;7119:4;7116:1;7109:15;7147:4;7144:1;7137:15;7001:161;;6788:380;;;:::o;7173:251::-;7243:6;7296:2;7284:9;7275:7;7271:23;7267:32;7264:52;;;7312:1;7309;7302:12;7264:52;7344:9;7338:16;7363:31;7388:5;7363:31;:::i;8093:184::-;8163:6;8216:2;8204:9;8195:7;8191:23;8187:32;8184:52;;;8232:1;8229;8222:12;8184:52;-1:-1:-1;8255:16:1;;8093:184;-1:-1:-1;8093:184:1:o;8561:245::-;8628:6;8681:2;8669:9;8660:7;8656:23;8652:32;8649:52;;;8697:1;8694;8687:12;8649:52;8729:9;8723:16;8748:28;8770:5;8748:28;:::i;11526:128::-;11593:9;;;11614:11;;;11611:37;;;11628:18;;:::i;11659:125::-;11724:9;;;11745:10;;;11742:36;;;11758:18;;:::i;12145:168::-;12218:9;;;12249;;12266:15;;;12260:22;;12246:37;12236:71;;12287:18;;:::i;12318:217::-;12358:1;12384;12374:132;;12428:10;12423:3;12419:20;12416:1;12409:31;12463:4;12460:1;12453:15;12491:4;12488:1;12481:15;12374:132;-1:-1:-1;12520:9:1;;12318:217::o;12942:461::-;12995:3;13033:5;13027:12;13060:6;13055:3;13048:19;13086:4;13115:2;13110:3;13106:12;13099:19;;13152:2;13145:5;13141:14;13173:1;13183:195;13197:6;13194:1;13191:13;13183:195;;;13262:13;;-1:-1:-1;;;;;13258:39:1;13246:52;;13318:12;;;;13353:15;;;;13294:1;13212:9;13183:195;;;-1:-1:-1;13394:3:1;;12942:461;-1:-1:-1;;;;;12942:461:1:o;13408:582::-;13707:6;13696:9;13689:25;13750:6;13745:2;13734:9;13730:18;13723:34;13793:3;13788:2;13777:9;13773:18;13766:31;13670:4;13814:57;13866:3;13855:9;13851:19;13843:6;13814:57;:::i;:::-;-1:-1:-1;;;;;13907:32:1;;;;13902:2;13887:18;;13880:60;-1:-1:-1;13971:3:1;13956:19;13949:35;13806:65;13408:582;-1:-1:-1;;;13408:582:1:o;13995:332::-;14202:6;14191:9;14184:25;14245:2;14240;14229:9;14225:18;14218:30;14165:4;14265:56;14317:2;14306:9;14302:18;14294:6;14265:56;:::i;:::-;14257:64;13995:332;-1:-1:-1;;;;13995:332:1:o
Swarm Source
ipfs://07b625c8de0ccd921bc58daa3610939b9a34d3f58e2c79831cfe26d7ac592065
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.