ERC-20
Overview
Max Total Supply
6,900,000,000 FACET
Holders
255
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
FACET
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-01-09 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.21; 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 private _owner; address private _previousOwner; uint256 private _lockTime; 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; } } 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 FACET is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "FACET"; string private _symbol = "FACET"; uint8 private _decimals = 9; address payable public marketingWalletAddress = payable(0xb355b64f4B5DdEa349fff97d3A06800b9fb406F7); address payable public teamWalletAddress = payable(0xb355b64f4B5DdEa349fff97d3A06800b9fb406F7); address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public isExcludedFromFee; mapping(address => bool) public _blackList; mapping(address => bool) public isMarketPair; bool public isLaunch = false; uint256 public _buyLiquidityFee = 0; uint256 public _buyMarketingFee = 2; uint256 public _buyTeamFee = 0; uint256 public _sellLiquidityFee = 0; uint256 public _sellMarketingFee = 2; uint256 public _sellTeamFee = 0; uint256 private _liquidityShare = 0; uint256 private _marketingShare = 100; uint256 private _teamShare = 0; uint256 private _totalTaxIfBuying = 1; uint256 private _totalTaxIfSelling = 1; uint256 private _totalDistributionShares = 2; uint256 private _totalSupply = 6900000000 * 10**_decimals; uint256 private minimumTokensBeforeSwap = 10000000 * 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() { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair( address(this), _uniswapV2Router.WETH() ); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add( _buyTeamFee ); _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add( _sellTeamFee ); _totalDistributionShares = _liquidityShare.add(_marketingShare).add( _teamShare ); isMarketPair[address(uniswapPair)] = true; _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _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); } function setMarketPairStatus(address account, bool newValue) public onlyOwner { isMarketPair[account] = newValue; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner { minimumTokensBeforeSwap = newLimit; } 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 _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(!_blackList[recipient] && !_blackList[sender], "black address"); if (!isExcludedFromFee[sender] && !isExcludedFromFee[recipient]) { require(isLaunch, "Swap not open"); } 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); } _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); uint256 finalAmount; if (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) { finalAmount = amount; } else { 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 { uint256 tokensForLP = tAmount .mul(_liquidityShare) .div(_totalDistributionShares) .div(2); uint256 tokensForSwap = tAmount.sub(tokensForLP); swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance; uint256 totalBNBFee = _totalDistributionShares.sub( _liquidityShare.div(2) ); uint256 amountBNBLiquidity = amountReceived .mul(_liquidityShare) .div(totalBNBFee) .div(2); uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee); uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub( amountBNBTeam ); if (amountBNBMarketing > 0) transferToAddressETH(marketingWalletAddress, amountBNBMarketing); if (amountBNBTeam > 0) transferToAddressETH(teamWalletAddress, amountBNBTeam); if (amountBNBLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, amountBNBLiquidity); } 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 addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable deadAddress, block.timestamp ); } function 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 setWList(address[] calldata addrs, bool status) external onlyOwner { for (uint256 i; i < addrs.length; ++i) { isExcludedFromFee[addrs[i]] = status; } } function setBList(address[] calldata addrs, bool status) external onlyOwner { for (uint256 i; i < addrs.length; ++i) { _blackList[addrs[i]] = status; } } function Launch() public onlyOwner { isLaunch = true; } function setBuyTaxes(uint256 _marketing, uint256 _liquidity, uint256 _team) external onlyOwner{ _buyLiquidityFee = _liquidity; _buyMarketingFee = _marketing; _buyTeamFee = _team; } function setSellTaxes(uint256 _marketing, uint256 _liquidity, uint256 _team) external onlyOwner{ _sellLiquidityFee = _liquidity; _sellMarketingFee = _marketing; _sellTeamFee = _team; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":[{"internalType":"address","name":"","type":"address"}],"name":"_blackList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTeamFee","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":[],"name":"getCirculatingSupply","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":"","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":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":"address[]","name":"addrs","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setBList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_team","type":"uint256"}],"name":"setBuyTaxes","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":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_team","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":[{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setWList","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":"teamWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e0604052600560a090815264119050d15560da1b60c052600390620000269082620005ab565b50604080518082019091526005815264119050d15560da1b6020820152600490620000529082620005ab565b506005805474b355b64f4b5ddea349fff97d3a06800b9fb406f7096001600160a81b0319909116179055600680546001600160a01b03191673b355b64f4b5ddea349fff97d3a06800b9fb406f717905561dead608052600c805460ff191690555f600d8190556002600e819055600f8290556010829055601181905560128290556013829055606460145560159190915560016016819055601755601855620000fe6009600a62000784565b6200010f9064019b45a5006200079b565b60195560058054620001279160ff9091169062000784565b6200013690629896806200079b565b601a55601c805461ffff60a81b1916600160a81b17905534801562000159575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3505f737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002159190620007b5565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000261573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002879190620007b5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002d2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002f89190620007b5565b601c80546001600160a01b039283166001600160a01b031991821617909155601b80549284169290911682179055601954305f908152600860209081526040808320948352939052918220556001906009906200035c5f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff199586161790553081526009909252902080549091166001179055600f54600e54600d54620003bd9291620003b691906200049f565b906200049f565b601655601254601154601054620003db9291620003b691906200049f565b601755601554601454601354620003f99291620003b691906200049f565b601855601c546001600160a01b03165f908152600b60205260408120805460ff19166001179055601954906007906200042f3390565b6001600160a01b0316815260208101919091526040015f2055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6019546040516200049091815260200190565b60405180910390a350620007f3565b5f80620004ad8385620007dd565b905083811015620005045760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200053657607f821691505b6020821081036200055557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620005a657805f5260205f20601f840160051c81016020851015620005825750805b601f840160051c820191505b81811015620005a3575f81556001016200058e565b50505b505050565b81516001600160401b03811115620005c757620005c76200050d565b620005df81620005d8845462000521565b846200055b565b602080601f83116001811462000615575f8415620005fd5750858301515b5f19600386901b1c1916600185901b1785556200066f565b5f85815260208120601f198616915b82811015620006455788860151825594840194600190910190840162000624565b50858210156200066357878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620006cb57815f1904821115620006af57620006af62000677565b80851615620006bd57918102915b93841c939080029062000690565b509250929050565b5f82620006e35750600162000507565b81620006f157505f62000507565b81600181146200070a5760028114620007155762000735565b600191505062000507565b60ff84111562000729576200072962000677565b50506001821b62000507565b5060208310610133831016604e8410600b84101617156200075a575081810a62000507565b6200076683836200068b565b805f19048211156200077c576200077c62000677565b029392505050565b5f6200079460ff841683620006d3565b9392505050565b808202811582820484141762000507576200050762000677565b5f60208284031215620007c6575f80fd5b81516001600160a01b038116811462000504575f80fd5b8082018082111562000507576200050762000677565b6080516122266200081a5f395f81816103b3015281816109990152611ce501526122265ff3fe608060405260043610610257575f3560e01c8063844d591c1161013f578063c5d24189116100b3578063d5e9452411610078578063d5e9452414610703578063da00097d14610722578063dc44b6a014610742578063dd62ed3e14610757578063f2fde38b1461079b578063f5d588f5146107ba575f80fd5b8063c5d2418914610681578063c816841b14610696578063c8607952146106b5578063cab03471146106ca578063d158272d146106df575f80fd5b8063a073d37f11610104578063a073d37f146105dc578063a457c2d7146105f0578063a5d69d1f1461060f578063a9059cbb1461062e578063c469b6dd1461064d578063c49b9a8014610662575f80fd5b8063844d591c1461056457806388790a68146105835780638da5cb5b14610598578063914eb66a146105b457806395d89b41146105c8575f80fd5b80632b112e49116101d65780634a74bb021161019b5780634a74bb02146104765780635342acb4146104965780635881f3ef146104c4578063595dec3c146104e357806370a08231146105115780637567429114610545575f80fd5b80632b112e49146103d5578063313ce567146103e9578063395093511461040a5780633b97084a146104295780633ecad27114610448575f80fd5b80631694505e1161021c5780631694505e1461032757806318160ddd146103465780631870517a1461036457806323b872dd1461038357806327c8f835146103a2575f80fd5b806302ac81681461026257806306fdde031461027857806308733214146102a2578063095ea7b3146102c15780631245e347146102f0575f80fd5b3661025e57005b5f80fd5b34801561026d575f80fd5b506102766107d3565b005b348015610283575f80fd5b5061028c610814565b6040516102999190611d94565b60405180910390f35b3480156102ad575f80fd5b506102766102bc366004611de0565b6108a4565b3480156102cc575f80fd5b506102e06102db366004611e20565b6108de565b6040519015158152602001610299565b3480156102fb575f80fd5b5060065461030f906001600160a01b031681565b6040516001600160a01b039091168152602001610299565b348015610332575f80fd5b50601b5461030f906001600160a01b031681565b348015610351575f80fd5b506019545b604051908152602001610299565b34801561036f575f80fd5b5061027661037e366004611de0565b6108f4565b34801561038e575f80fd5b506102e061039d366004611e4a565b61092e565b3480156103ad575f80fd5b5061030f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e0575f80fd5b50610356610997565b3480156103f4575f80fd5b5060055460405160ff9091168152602001610299565b348015610415575f80fd5b506102e0610424366004611e20565b6109e0565b348015610434575f80fd5b50610276610443366004611e88565b610a15565b348015610453575f80fd5b506102e0610462366004611e9f565b600b6020525f908152604090205460ff1681565b348015610481575f80fd5b50601c546102e090600160a81b900460ff1681565b3480156104a1575f80fd5b506102e06104b0366004611e9f565b60096020525f908152604090205460ff1681565b3480156104cf575f80fd5b5061030f6104de366004611e9f565b610a43565b3480156104ee575f80fd5b506102e06104fd366004611e9f565b600a6020525f908152604090205460ff1681565b34801561051c575f80fd5b5061035661052b366004611e9f565b6001600160a01b03165f9081526007602052604090205490565b348015610550575f80fd5b5061027661055f366004611ece565b610d4d565b34801561056f575f80fd5b5061027661057e366004611f4b565b610de0565b34801561058e575f80fd5b5061035660105481565b3480156105a3575f80fd5b505f546001600160a01b031661030f565b3480156105bf575f80fd5b50610276610e33565b3480156105d3575f80fd5b5061028c610eaa565b3480156105e7575f80fd5b50601a54610356565b3480156105fb575f80fd5b506102e061060a366004611e20565b610eb9565b34801561061a575f80fd5b50610276610629366004611f7e565b610f06565b348015610639575f80fd5b506102e0610648366004611e20565b610f4d565b348015610658575f80fd5b50610356600f5481565b34801561066d575f80fd5b5061027661067c366004611f7e565b610f59565b34801561068c575f80fd5b50610356600e5481565b3480156106a1575f80fd5b50601c5461030f906001600160a01b031681565b3480156106c0575f80fd5b5061035660115481565b3480156106d5575f80fd5b5061035660125481565b3480156106ea575f80fd5b5060055461030f9061010090046001600160a01b031681565b34801561070e575f80fd5b5061027661071d366004611ece565b610fda565b34801561072d575f80fd5b50601c546102e090600160b01b900460ff1681565b34801561074d575f80fd5b50610356600d5481565b348015610762575f80fd5b50610356610771366004611f97565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b3480156107a6575f80fd5b506102766107b5366004611e9f565b611067565b3480156107c5575f80fd5b50600c546102e09060ff1681565b5f546001600160a01b031633146108055760405162461bcd60e51b81526004016107fc90611fce565b60405180910390fd5b600c805460ff19166001179055565b60606003805461082390612003565b80601f016020809104026020016040519081016040528092919081815260200182805461084f90612003565b801561089a5780601f106108715761010080835404028352916020019161089a565b820191905f5260205f20905b81548152906001019060200180831161087d57829003601f168201915b5050505050905090565b5f546001600160a01b031633146108cd5760405162461bcd60e51b81526004016107fc90611fce565b601091909155601191909155601255565b5f6108ea33848461114e565b5060015b92915050565b5f546001600160a01b0316331461091d5760405162461bcd60e51b81526004016107fc90611fce565b600d91909155600e91909155600f55565b5f61093a848484611271565b5061098c8433610987856040518060600160405280602881526020016121a4602891396001600160a01b038a165f908152600860209081526040808320338452909152902054919061162a565b61114e565b5060015b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165f908152600760205260408120546019546109db91611662565b905090565b335f8181526008602090815260408083206001600160a01b038716845290915281205490916108ea91859061098790866116a3565b5f546001600160a01b03163314610a3e5760405162461bcd60e51b81526004016107fc90611fce565b601a55565b5f80546001600160a01b03163314610a6d5760405162461bcd60e51b81526004016107fc90611fce565b5f829050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aad573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad1919061203b565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b40919061203b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610b89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bad919061203b565b91506001600160a01b038216610cfd57806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1d919061203b565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8c919061203b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610cd6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cfa919061203b565b91505b601c80546001600160a01b038085166001600160a01b03199283168117909355601b80549490911693909116929092179091555f908152600b60205260409020805460ff19166001179055919050565b5f546001600160a01b03163314610d765760405162461bcd60e51b81526004016107fc90611fce565b5f5b82811015610dda5781600a5f868685818110610d9657610d96612056565b9050602002016020810190610dab9190611e9f565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610d78565b50505050565b5f546001600160a01b03163314610e095760405162461bcd60e51b81526004016107fc90611fce565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610e5c5760405162461bcd60e51b81526004016107fc90611fce565b5f805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b03191661dead179055565b60606004805461082390612003565b5f6108ea3384610987856040518060600160405280602581526020016121cc60259139335f9081526008602090815260408083206001600160a01b038d168452909152902054919061162a565b5f546001600160a01b03163314610f2f5760405162461bcd60e51b81526004016107fc90611fce565b601c8054911515600160b01b0260ff60b01b19909216919091179055565b5f61098c338484611271565b5f546001600160a01b03163314610f825760405162461bcd60e51b81526004016107fc90611fce565b601c8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610fcf90831515815260200190565b60405180910390a150565b5f546001600160a01b031633146110035760405162461bcd60e51b81526004016107fc90611fce565b5f5b82811015610dda578160095f86868581811061102357611023612056565b90506020020160208101906110389190611e9f565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101611005565b5f546001600160a01b031633146110905760405162461bcd60e51b81526004016107fc90611fce565b6001600160a01b0381166110f55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107fc565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166111b05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107fc565b6001600160a01b0382166112115760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107fc565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b0384166112d65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107fc565b6001600160a01b0383166113385760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107fc565b6001600160a01b0383165f908152600a602052604090205460ff1615801561137857506001600160a01b0384165f908152600a602052604090205460ff16155b6113b45760405162461bcd60e51b815260206004820152600d60248201526c626c61636b206164647265737360981b60448201526064016107fc565b6001600160a01b0384165f9081526009602052604090205460ff161580156113f457506001600160a01b0383165f9081526009602052604090205460ff16155b1561143b57600c5460ff1661143b5760405162461bcd60e51b815260206004820152600d60248201526c29bbb0b8103737ba1037b832b760991b60448201526064016107fc565b601c54600160a01b900460ff161561145f57611458848484611701565b9050610990565b305f90815260076020526040902054601a548110801590819061148c5750601c54600160a01b900460ff16155b80156114b057506001600160a01b0386165f908152600b602052604090205460ff16155b80156114c55750601c54600160a81b900460ff165b156114eb57601c54600160b01b900460ff16156114e257601a5491505b6114eb826117e4565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f9081526007909152919091205461153c91869061162a565b6001600160a01b0387165f90815260076020908152604080832093909355600990529081205460ff168061158757506001600160a01b0386165f9081526009602052604090205460ff165b156115935750836115a1565b61159e878787611917565b90505b6001600160a01b0386165f908152600760205260409020546115c390826116a3565b6001600160a01b038088165f8181526007602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116169085815260200190565b60405180910390a360019350505050610990565b5f818484111561164d5760405162461bcd60e51b81526004016107fc9190611d94565b505f611659848661207e565b95945050505050565b5f61099083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061162a565b5f806116af8385612091565b9050838110156109905760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107fc565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260079091529182205461175191849061162a565b6001600160a01b038086165f90815260076020526040808220939093559085168152205461177f90836116a3565b6001600160a01b038085165f8181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117d29086815260200190565b60405180910390a35060019392505050565b601c805460ff60a01b1916600160a01b1790556018546013545f91611819916002916118139182908790611a19565b90611a97565b90505f6118268383611662565b905061183181611ad8565b60135447905f9061185090611847906002611a97565b60185490611662565b90505f61187160026118138461181360135488611a1990919063ffffffff16565b90505f61188d8361181360155487611a1990919063ffffffff16565b90505f6118a48261189e8786611662565b90611662565b905080156118c7576005546118c79061010090046001600160a01b031682611c61565b81156118e3576006546118e3906001600160a01b031683611c61565b5f831180156118f157505f87115b15611900576119008784611c99565b5050601c805460ff60a01b19169055505050505050565b6001600160a01b0383165f908152600b6020526040812054819060ff161561195a57611953606461181360165486611a1990919063ffffffff16565b9050611997565b6001600160a01b0384165f908152600b602052604090205460ff161561199757611994606461181360175486611a1990919063ffffffff16565b90505b8015611a0f57305f908152600760205260409020546119b690826116a3565b305f81815260076020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a069085815260200190565b60405180910390a35b6116598382611662565b5f825f03611a2857505f6108ee565b5f611a3383856120a4565b905082611a4085836120bb565b146109905760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107fc565b5f61099083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d68565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611b0b57611b0b612056565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b86919061203b565b81600181518110611b9957611b99612056565b6001600160a01b039283166020918202929092010152601b54611bbf913091168461114e565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611bf79085905f9086903090429060040161211d565b5f604051808303815f87803b158015611c0e575f80fd5b505af1158015611c20573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611c55929190612158565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015611c94573d5f803e3d5ffd5b505050565b601b54611cb19030906001600160a01b03168461114e565b601b5460405163f305d71960e01b8152306004820152602481018490525f6044820181905260648201526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015611d3c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611d619190612178565b5050505050565b5f8183611d885760405162461bcd60e51b81526004016107fc9190611d94565b505f61165984866120bb565b5f602080835283518060208501525f5b81811015611dc057858101830151858201604001528201611da4565b505f604082860101526040601f19601f8301168501019250505092915050565b5f805f60608486031215611df2575f80fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114611e1d575f80fd5b50565b5f8060408385031215611e31575f80fd5b8235611e3c81611e09565b946020939093013593505050565b5f805f60608486031215611e5c575f80fd5b8335611e6781611e09565b92506020840135611e7781611e09565b929592945050506040919091013590565b5f60208284031215611e98575f80fd5b5035919050565b5f60208284031215611eaf575f80fd5b813561099081611e09565b80358015158114611ec9575f80fd5b919050565b5f805f60408486031215611ee0575f80fd5b833567ffffffffffffffff80821115611ef7575f80fd5b818601915086601f830112611f0a575f80fd5b813581811115611f18575f80fd5b8760208260051b8501011115611f2c575f80fd5b602092830195509350611f429186019050611eba565b90509250925092565b5f8060408385031215611f5c575f80fd5b8235611f6781611e09565b9150611f7560208401611eba565b90509250929050565b5f60208284031215611f8e575f80fd5b61099082611eba565b5f8060408385031215611fa8575f80fd5b8235611fb381611e09565b91506020830135611fc381611e09565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061201757607f821691505b60208210810361203557634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121561204b575f80fd5b815161099081611e09565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b818103818111156108ee576108ee61206a565b808201808211156108ee576108ee61206a565b80820281158282048414176108ee576108ee61206a565b5f826120d557634e487b7160e01b5f52601260045260245ffd5b500490565b5f815180845260208085019450602084015f5b838110156121125781516001600160a01b0316875295820195908201906001016120ed565b509495945050505050565b85815284602082015260a060408201525f61213b60a08301866120da565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f61217060408301846120da565b949350505050565b5f805f6060848603121561218a575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220509a2d63852b48fa43587003bfbe15c1a29ecd9d7ccee5f24baa1b60639b761964736f6c63430008170033
Deployed Bytecode
0x608060405260043610610257575f3560e01c8063844d591c1161013f578063c5d24189116100b3578063d5e9452411610078578063d5e9452414610703578063da00097d14610722578063dc44b6a014610742578063dd62ed3e14610757578063f2fde38b1461079b578063f5d588f5146107ba575f80fd5b8063c5d2418914610681578063c816841b14610696578063c8607952146106b5578063cab03471146106ca578063d158272d146106df575f80fd5b8063a073d37f11610104578063a073d37f146105dc578063a457c2d7146105f0578063a5d69d1f1461060f578063a9059cbb1461062e578063c469b6dd1461064d578063c49b9a8014610662575f80fd5b8063844d591c1461056457806388790a68146105835780638da5cb5b14610598578063914eb66a146105b457806395d89b41146105c8575f80fd5b80632b112e49116101d65780634a74bb021161019b5780634a74bb02146104765780635342acb4146104965780635881f3ef146104c4578063595dec3c146104e357806370a08231146105115780637567429114610545575f80fd5b80632b112e49146103d5578063313ce567146103e9578063395093511461040a5780633b97084a146104295780633ecad27114610448575f80fd5b80631694505e1161021c5780631694505e1461032757806318160ddd146103465780631870517a1461036457806323b872dd1461038357806327c8f835146103a2575f80fd5b806302ac81681461026257806306fdde031461027857806308733214146102a2578063095ea7b3146102c15780631245e347146102f0575f80fd5b3661025e57005b5f80fd5b34801561026d575f80fd5b506102766107d3565b005b348015610283575f80fd5b5061028c610814565b6040516102999190611d94565b60405180910390f35b3480156102ad575f80fd5b506102766102bc366004611de0565b6108a4565b3480156102cc575f80fd5b506102e06102db366004611e20565b6108de565b6040519015158152602001610299565b3480156102fb575f80fd5b5060065461030f906001600160a01b031681565b6040516001600160a01b039091168152602001610299565b348015610332575f80fd5b50601b5461030f906001600160a01b031681565b348015610351575f80fd5b506019545b604051908152602001610299565b34801561036f575f80fd5b5061027661037e366004611de0565b6108f4565b34801561038e575f80fd5b506102e061039d366004611e4a565b61092e565b3480156103ad575f80fd5b5061030f7f000000000000000000000000000000000000000000000000000000000000dead81565b3480156103e0575f80fd5b50610356610997565b3480156103f4575f80fd5b5060055460405160ff9091168152602001610299565b348015610415575f80fd5b506102e0610424366004611e20565b6109e0565b348015610434575f80fd5b50610276610443366004611e88565b610a15565b348015610453575f80fd5b506102e0610462366004611e9f565b600b6020525f908152604090205460ff1681565b348015610481575f80fd5b50601c546102e090600160a81b900460ff1681565b3480156104a1575f80fd5b506102e06104b0366004611e9f565b60096020525f908152604090205460ff1681565b3480156104cf575f80fd5b5061030f6104de366004611e9f565b610a43565b3480156104ee575f80fd5b506102e06104fd366004611e9f565b600a6020525f908152604090205460ff1681565b34801561051c575f80fd5b5061035661052b366004611e9f565b6001600160a01b03165f9081526007602052604090205490565b348015610550575f80fd5b5061027661055f366004611ece565b610d4d565b34801561056f575f80fd5b5061027661057e366004611f4b565b610de0565b34801561058e575f80fd5b5061035660105481565b3480156105a3575f80fd5b505f546001600160a01b031661030f565b3480156105bf575f80fd5b50610276610e33565b3480156105d3575f80fd5b5061028c610eaa565b3480156105e7575f80fd5b50601a54610356565b3480156105fb575f80fd5b506102e061060a366004611e20565b610eb9565b34801561061a575f80fd5b50610276610629366004611f7e565b610f06565b348015610639575f80fd5b506102e0610648366004611e20565b610f4d565b348015610658575f80fd5b50610356600f5481565b34801561066d575f80fd5b5061027661067c366004611f7e565b610f59565b34801561068c575f80fd5b50610356600e5481565b3480156106a1575f80fd5b50601c5461030f906001600160a01b031681565b3480156106c0575f80fd5b5061035660115481565b3480156106d5575f80fd5b5061035660125481565b3480156106ea575f80fd5b5060055461030f9061010090046001600160a01b031681565b34801561070e575f80fd5b5061027661071d366004611ece565b610fda565b34801561072d575f80fd5b50601c546102e090600160b01b900460ff1681565b34801561074d575f80fd5b50610356600d5481565b348015610762575f80fd5b50610356610771366004611f97565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b3480156107a6575f80fd5b506102766107b5366004611e9f565b611067565b3480156107c5575f80fd5b50600c546102e09060ff1681565b5f546001600160a01b031633146108055760405162461bcd60e51b81526004016107fc90611fce565b60405180910390fd5b600c805460ff19166001179055565b60606003805461082390612003565b80601f016020809104026020016040519081016040528092919081815260200182805461084f90612003565b801561089a5780601f106108715761010080835404028352916020019161089a565b820191905f5260205f20905b81548152906001019060200180831161087d57829003601f168201915b5050505050905090565b5f546001600160a01b031633146108cd5760405162461bcd60e51b81526004016107fc90611fce565b601091909155601191909155601255565b5f6108ea33848461114e565b5060015b92915050565b5f546001600160a01b0316331461091d5760405162461bcd60e51b81526004016107fc90611fce565b600d91909155600e91909155600f55565b5f61093a848484611271565b5061098c8433610987856040518060600160405280602881526020016121a4602891396001600160a01b038a165f908152600860209081526040808320338452909152902054919061162a565b61114e565b5060015b9392505050565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b03165f908152600760205260408120546019546109db91611662565b905090565b335f8181526008602090815260408083206001600160a01b038716845290915281205490916108ea91859061098790866116a3565b5f546001600160a01b03163314610a3e5760405162461bcd60e51b81526004016107fc90611fce565b601a55565b5f80546001600160a01b03163314610a6d5760405162461bcd60e51b81526004016107fc90611fce565b5f829050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aad573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad1919061203b565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b40919061203b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610b89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bad919061203b565b91506001600160a01b038216610cfd57806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1d919061203b565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8c919061203b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610cd6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cfa919061203b565b91505b601c80546001600160a01b038085166001600160a01b03199283168117909355601b80549490911693909116929092179091555f908152600b60205260409020805460ff19166001179055919050565b5f546001600160a01b03163314610d765760405162461bcd60e51b81526004016107fc90611fce565b5f5b82811015610dda5781600a5f868685818110610d9657610d96612056565b9050602002016020810190610dab9190611e9f565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610d78565b50505050565b5f546001600160a01b03163314610e095760405162461bcd60e51b81526004016107fc90611fce565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610e5c5760405162461bcd60e51b81526004016107fc90611fce565b5f805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b03191661dead179055565b60606004805461082390612003565b5f6108ea3384610987856040518060600160405280602581526020016121cc60259139335f9081526008602090815260408083206001600160a01b038d168452909152902054919061162a565b5f546001600160a01b03163314610f2f5760405162461bcd60e51b81526004016107fc90611fce565b601c8054911515600160b01b0260ff60b01b19909216919091179055565b5f61098c338484611271565b5f546001600160a01b03163314610f825760405162461bcd60e51b81526004016107fc90611fce565b601c8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610fcf90831515815260200190565b60405180910390a150565b5f546001600160a01b031633146110035760405162461bcd60e51b81526004016107fc90611fce565b5f5b82811015610dda578160095f86868581811061102357611023612056565b90506020020160208101906110389190611e9f565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101611005565b5f546001600160a01b031633146110905760405162461bcd60e51b81526004016107fc90611fce565b6001600160a01b0381166110f55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107fc565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166111b05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107fc565b6001600160a01b0382166112115760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107fc565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b0384166112d65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107fc565b6001600160a01b0383166113385760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107fc565b6001600160a01b0383165f908152600a602052604090205460ff1615801561137857506001600160a01b0384165f908152600a602052604090205460ff16155b6113b45760405162461bcd60e51b815260206004820152600d60248201526c626c61636b206164647265737360981b60448201526064016107fc565b6001600160a01b0384165f9081526009602052604090205460ff161580156113f457506001600160a01b0383165f9081526009602052604090205460ff16155b1561143b57600c5460ff1661143b5760405162461bcd60e51b815260206004820152600d60248201526c29bbb0b8103737ba1037b832b760991b60448201526064016107fc565b601c54600160a01b900460ff161561145f57611458848484611701565b9050610990565b305f90815260076020526040902054601a548110801590819061148c5750601c54600160a01b900460ff16155b80156114b057506001600160a01b0386165f908152600b602052604090205460ff16155b80156114c55750601c54600160a81b900460ff165b156114eb57601c54600160b01b900460ff16156114e257601a5491505b6114eb826117e4565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f9081526007909152919091205461153c91869061162a565b6001600160a01b0387165f90815260076020908152604080832093909355600990529081205460ff168061158757506001600160a01b0386165f9081526009602052604090205460ff165b156115935750836115a1565b61159e878787611917565b90505b6001600160a01b0386165f908152600760205260409020546115c390826116a3565b6001600160a01b038088165f8181526007602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116169085815260200190565b60405180910390a360019350505050610990565b5f818484111561164d5760405162461bcd60e51b81526004016107fc9190611d94565b505f611659848661207e565b95945050505050565b5f61099083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061162a565b5f806116af8385612091565b9050838110156109905760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107fc565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260079091529182205461175191849061162a565b6001600160a01b038086165f90815260076020526040808220939093559085168152205461177f90836116a3565b6001600160a01b038085165f8181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117d29086815260200190565b60405180910390a35060019392505050565b601c805460ff60a01b1916600160a01b1790556018546013545f91611819916002916118139182908790611a19565b90611a97565b90505f6118268383611662565b905061183181611ad8565b60135447905f9061185090611847906002611a97565b60185490611662565b90505f61187160026118138461181360135488611a1990919063ffffffff16565b90505f61188d8361181360155487611a1990919063ffffffff16565b90505f6118a48261189e8786611662565b90611662565b905080156118c7576005546118c79061010090046001600160a01b031682611c61565b81156118e3576006546118e3906001600160a01b031683611c61565b5f831180156118f157505f87115b15611900576119008784611c99565b5050601c805460ff60a01b19169055505050505050565b6001600160a01b0383165f908152600b6020526040812054819060ff161561195a57611953606461181360165486611a1990919063ffffffff16565b9050611997565b6001600160a01b0384165f908152600b602052604090205460ff161561199757611994606461181360175486611a1990919063ffffffff16565b90505b8015611a0f57305f908152600760205260409020546119b690826116a3565b305f81815260076020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a069085815260200190565b60405180910390a35b6116598382611662565b5f825f03611a2857505f6108ee565b5f611a3383856120a4565b905082611a4085836120bb565b146109905760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107fc565b5f61099083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d68565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611b0b57611b0b612056565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b86919061203b565b81600181518110611b9957611b99612056565b6001600160a01b039283166020918202929092010152601b54611bbf913091168461114e565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611bf79085905f9086903090429060040161211d565b5f604051808303815f87803b158015611c0e575f80fd5b505af1158015611c20573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611c55929190612158565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015611c94573d5f803e3d5ffd5b505050565b601b54611cb19030906001600160a01b03168461114e565b601b5460405163f305d71960e01b8152306004820152602481018490525f6044820181905260648201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000dead811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015611d3c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611d619190612178565b5050505050565b5f8183611d885760405162461bcd60e51b81526004016107fc9190611d94565b505f61165984866120bb565b5f602080835283518060208501525f5b81811015611dc057858101830151858201604001528201611da4565b505f604082860101526040601f19601f8301168501019250505092915050565b5f805f60608486031215611df2575f80fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114611e1d575f80fd5b50565b5f8060408385031215611e31575f80fd5b8235611e3c81611e09565b946020939093013593505050565b5f805f60608486031215611e5c575f80fd5b8335611e6781611e09565b92506020840135611e7781611e09565b929592945050506040919091013590565b5f60208284031215611e98575f80fd5b5035919050565b5f60208284031215611eaf575f80fd5b813561099081611e09565b80358015158114611ec9575f80fd5b919050565b5f805f60408486031215611ee0575f80fd5b833567ffffffffffffffff80821115611ef7575f80fd5b818601915086601f830112611f0a575f80fd5b813581811115611f18575f80fd5b8760208260051b8501011115611f2c575f80fd5b602092830195509350611f429186019050611eba565b90509250925092565b5f8060408385031215611f5c575f80fd5b8235611f6781611e09565b9150611f7560208401611eba565b90509250929050565b5f60208284031215611f8e575f80fd5b61099082611eba565b5f8060408385031215611fa8575f80fd5b8235611fb381611e09565b91506020830135611fc381611e09565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061201757607f821691505b60208210810361203557634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121561204b575f80fd5b815161099081611e09565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b818103818111156108ee576108ee61206a565b808201808211156108ee576108ee61206a565b80820281158282048414176108ee576108ee61206a565b5f826120d557634e487b7160e01b5f52601260045260245ffd5b500490565b5f815180845260208085019450602084015f5b838110156121125781516001600160a01b0316875295820195908201906001016120ed565b509495945050505050565b85815284602082015260a060408201525f61213b60a08301866120da565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f61217060408301846120da565b949350505050565b5f805f6060848603121561218a575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220509a2d63852b48fa43587003bfbe15c1a29ecd9d7ccee5f24baa1b60639b761964736f6c63430008170033
Deployed Bytecode Sourcemap
16313:13990:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29787:69;;;;;;;;;;;;;:::i;:::-;;19540:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30084:216;;;;;;;;;;-1:-1:-1;30084:216:0;;;;;:::i;:::-;;:::i;21088:193::-;;;;;;;;;;-1:-1:-1;21088:193:0;;;;;:::i;:::-;;:::i;:::-;;;1509:14:1;;1502:22;1484:41;;1472:2;1457:18;21088:193:0;1344:187:1;16657:103:0;;;;;;;;;;-1:-1:-1;16657:103:0;;;;-1:-1:-1;;;;;16657:103:0;;;;;;-1:-1:-1;;;;;1716:32:1;;;1698:51;;1686:2;1671:18;16657:103:0;1536:219:1;17833:41:0;;;;;;;;;;-1:-1:-1;17833:41:0;;;;-1:-1:-1;;;;;17833:41:0;;;19817:100;;;;;;;;;;-1:-1:-1;19897:12:0;;19817:100;;;2141:25:1;;;2129:2;2114:18;19817:100:0;1995:177:1;29864:212:0;;;;;;;;;;-1:-1:-1;29864:212:0;;;;;:::i;:::-;;:::i;23702:446::-;;;;;;;;;;-1:-1:-1;23702:446:0;;;;;:::i;:::-;;:::i;16767:90::-;;;;;;;;;;;;;;;22270:128;;;;;;;;;;;;;:::i;19726:83::-;;;;;;;;;;-1:-1:-1;19792:9:0;;19726:83;;19792:9;;;;2988:36:1;;2976:2;2961:18;19726:83:0;2846:184:1;20244:300:0;;;;;;;;;;-1:-1:-1;20244:300:0;;;;;:::i;:::-;;:::i;21828:122::-;;;;;;;;;;-1:-1:-1;21828:122:0;;;;;:::i;:::-;;:::i;17091:44::-;;;;;;;;;;-1:-1:-1;17091:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17944:40;;;;;;;;;;-1:-1:-1;17944:40:0;;;;-1:-1:-1;;;17944:40:0;;;;;;16986:49;;;;;;;;;;-1:-1:-1;16986:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22554:840;;;;;;;;;;-1:-1:-1;22554:840:0;;;;;:::i;:::-;;:::i;17042:42::-;;;;;;;;;;-1:-1:-1;17042:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19925:119;;;;;;;;;;-1:-1:-1;19925:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;20018:18:0;19991:7;20018:18;;;:9;:18;;;;;;;19925:119;29567:212;;;;;;;;;;-1:-1:-1;29567:212:0;;;;;:::i;:::-;;:::i;21668:152::-;;;;;;;;;;-1:-1:-1;21668:152:0;;;;;:::i;:::-;;:::i;17302:36::-;;;;;;;;;;;;;;;;6451:79;;;;;;;;;;-1:-1:-1;6489:7:0;6516:6;-1:-1:-1;;;;;6516:6:0;6451:79;;6665:155;;;;;;;;;;;;;:::i;19631:87::-;;;;;;;;;;;;;:::i;20960:120::-;;;;;;;;;;-1:-1:-1;21049:23:0;;20960:120;;20552:400;;;;;;;;;;-1:-1:-1;20552:400:0;;;;;:::i;:::-;;:::i;22137:125::-;;;;;;;;;;-1:-1:-1;22137:125:0;;;;;:::i;:::-;;:::i;23495:199::-;;;;;;;;;;-1:-1:-1;23495:199:0;;;;;:::i;:::-;;:::i;17263:30::-;;;;;;;;;;;;;;;;21958:171;;;;;;;;;;-1:-1:-1;21958:171:0;;;;;:::i;:::-;;:::i;17221:35::-;;;;;;;;;;;;;;;;17881:26;;;;;;;;;;-1:-1:-1;17881:26:0;;;;-1:-1:-1;;;;;17881:26:0;;;17345:36;;;;;;;;;;;;;;;;17388:31;;;;;;;;;;;;;;;;16542:108;;;;;;;;;;-1:-1:-1;16542:108:0;;;;;;;-1:-1:-1;;;;;16542:108:0;;;29340:219;;;;;;;;;;-1:-1:-1;29340:219:0;;;;;:::i;:::-;;:::i;17991:45::-;;;;;;;;;;-1:-1:-1;17991:45:0;;;;-1:-1:-1;;;17991:45:0;;;;;;17179:35;;;;;;;;;;;;;;;;20052:184;;;;;;;;;;-1:-1:-1;20052:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;20201:18:0;;;20169:7;20201:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;20052:184;6828:281;;;;;;;;;;-1:-1:-1;6828:281:0;;;;;:::i;:::-;;:::i;17142:28::-;;;;;;;;;;-1:-1:-1;17142:28:0;;;;;;;;29787:69;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;;;;;;;;;29833:8:::1;:15:::0;;-1:-1:-1;;29833:15:0::1;29844:4;29833:15;::::0;;29787:69::o;19540:83::-;19577:13;19610:5;19603:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19540:83;:::o;30084:216::-;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;30190:17:::1;:30:::0;;;;30231:17:::1;:30:::0;;;;30272:12:::1;:20:::0;30084:216::o;21088:193::-;21190:4;21212:39;190:10;21235:7;21244:6;21212:8;:39::i;:::-;-1:-1:-1;21269:4:0;21088:193;;;;;:::o;29864:212::-;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;29969:16:::1;:29:::0;;;;30009:16:::1;:29:::0;;;;30049:11:::1;:19:::0;29864:212::o;23702:446::-;23834:4;23851:36;23861:6;23869:9;23880:6;23851:9;:36::i;:::-;-1:-1:-1;23898:220:0;23921:6;190:10;23969:138;24025:6;23969:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23969:19:0;;;;;;:11;:19;;;;;;;;190:10;23969:33;;;;;;;;;;:37;:138::i;:::-;23898:8;:220::i;:::-;-1:-1:-1;24136:4:0;23702:446;;;;;;:::o;22270:128::-;22377:11;-1:-1:-1;;;;;20018:18:0;22323:7;20018:18;;;:9;:18;;;;;;22350:12;;:40;;:16;:40::i;:::-;22343:47;;22270:128;:::o;20244:300::-;190:10;20359:4;20453:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;20453:34:0;;;;;;;;;;20359:4;;20381:133;;20431:7;;20453:50;;20492:10;20453:38;:50::i;21828:122::-;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;21908:23:::1;:34:::0;21828:122::o;22554:840::-;22662:22;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;22702:35:::1;22773:16;22702:98;;22848:16;-1:-1:-1::0;;;;;22848:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22830:53:0::1;;22906:4;22926:16;-1:-1:-1::0;;;;;22926:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22830:130;::::0;-1:-1:-1;;;;;;22830:130:0::1;::::0;;;;;;-1:-1:-1;;;;;6461:15:1;;;22830:130:0::1;::::0;::::1;6443:34:1::0;6513:15;;6493:18;;;6486:43;6378:18;;22830:130:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22813:147:::0;-1:-1:-1;;;;;;22977:28:0;::::1;22973:226;;23091:16;-1:-1:-1::0;;;;;23091:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23073:74:0::1;;23156:4;23163:16;-1:-1:-1::0;;;;;23163:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23073:114;::::0;-1:-1:-1;;;;;;23073:114:0::1;::::0;;;;;;-1:-1:-1;;;;;6461:15:1;;;23073:114:0::1;::::0;::::1;6443:34:1::0;6513:15;;6493:18;;;6486:43;6378:18;;23073:114:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23056:131;;22973:226;23211:11;:28:::0;;-1:-1:-1;;;;;23211:28:0;;::::1;-1:-1:-1::0;;;;;;23211:28:0;;::::1;::::0;::::1;::::0;;;23273:15:::1;:34:::0;;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;23211:11:::1;23345:34:::0;;;:12:::1;:34;::::0;;;;:41;;-1:-1:-1;;23345:41:0::1;23211:28:::0;23345:41:::1;::::0;;23225:14;22554:840;-1:-1:-1;22554:840:0:o;29567:212::-;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;29682:9:::1;29677:95;29693:16:::0;;::::1;29677:95;;;29754:6;29731:10;:20;29742:5;;29748:1;29742:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;29731:20:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;29731:20:0;:29;;-1:-1:-1;;29731:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;29711:3:0::1;29677:95;;;;29567:212:::0;;;:::o;21668:152::-;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21780:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;21780:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21668:152::o;6665:155::-;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;6753:6:::1;::::0;;6732:45:::1;::::0;6769:6:::1;::::0;-1:-1:-1;;;;;6753:6:0;;::::1;::::0;6732:45:::1;::::0;::::1;6788:6;:24:::0;;-1:-1:-1;;;;;;6788:24:0::1;6805:6;6788:24;::::0;;6665:155::o;19631:87::-;19670:13;19703:7;19696:14;;;;;:::i;20552:400::-;20672:4;20694:228;190:10;20744:7;20766:145;20823:15;20766:145;;;;;;;;;;;;;;;;;190:10;20766:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;20766:34:0;;;;;;;;;;;;:38;:145::i;22137:125::-;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;22218:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;22218:36:0::1;-1:-1:-1::0;;;;22218:36:0;;::::1;::::0;;;::::1;::::0;;22137:125::o;23495:199::-;23600:4;23622:42;190:10;23646:9;23657:6;23622:9;:42::i;21958:171::-;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;22035:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;22035:32:0::1;-1:-1:-1::0;;;;22035:32:0;;::::1;;::::0;;22083:38:::1;::::0;::::1;::::0;::::1;::::0;22059:8;1509:14:1;1502:22;1484:41;;1472:2;1457:18;;1344:187;22083:38:0::1;;;;;;;;21958:171:::0;:::o;29340:219::-;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;29455:9:::1;29450:102;29466:16:::0;;::::1;29450:102;;;29534:6;29504:17;:27;29522:5;;29528:1;29522:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;29504:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;29504:27:0;:36;;-1:-1:-1;;29504:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;29484:3:0::1;29450:102;;6828:281:::0;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6931:22:0;::::1;6909:110;;;::::0;-1:-1:-1;;;6909:110:0;;6874:2:1;6909:110:0::1;::::0;::::1;6856:21:1::0;6913:2;6893:18;;;6886:30;6952:34;6932:18;;;6925:62;-1:-1:-1;;;7003:18:1;;;6996:36;7049:19;;6909:110:0::1;6672:402:1::0;6909:110:0::1;7056:6;::::0;;7035:38:::1;::::0;-1:-1:-1;;;;;7035:38:0;;::::1;::::0;7056:6;::::1;::::0;7035:38:::1;::::0;::::1;7084:6;:17:::0;;-1:-1:-1;;;;;;7084:17:0::1;-1:-1:-1::0;;;;;7084:17:0;;;::::1;::::0;;;::::1;::::0;;6828:281::o;21289:371::-;-1:-1:-1;;;;;21416:19:0;;21408:68;;;;-1:-1:-1;;;21408:68:0;;7281:2:1;21408:68:0;;;7263:21:1;7320:2;7300:18;;;7293:30;7359:34;7339:18;;;7332:62;-1:-1:-1;;;7410:18:1;;;7403:34;7454:19;;21408:68:0;7079:400:1;21408:68:0;-1:-1:-1;;;;;21495:21:0;;21487:68;;;;-1:-1:-1;;;21487:68:0;;7686:2:1;21487:68:0;;;7668:21:1;7725:2;7705:18;;;7698:30;7764:34;7744:18;;;7737:62;-1:-1:-1;;;7815:18:1;;;7808:32;7857:19;;21487:68:0;7484:398:1;21487:68:0;-1:-1:-1;;;;;21568:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;21620:32;;2141:25:1;;;21620:32:0;;2114:18:1;21620:32:0;;;;;;;21289:371;;;:::o;24156:1771::-;24277:4;-1:-1:-1;;;;;24302:20:0;;24294:70;;;;-1:-1:-1;;;24294:70:0;;8089:2:1;24294:70:0;;;8071:21:1;8128:2;8108:18;;;8101:30;8167:34;8147:18;;;8140:62;-1:-1:-1;;;8218:18:1;;;8211:35;8263:19;;24294:70:0;7887:401:1;24294:70:0;-1:-1:-1;;;;;24383:23:0;;24375:71;;;;-1:-1:-1;;;24375:71:0;;8495:2:1;24375:71:0;;;8477:21:1;8534:2;8514:18;;;8507:30;8573:34;8553:18;;;8546:62;-1:-1:-1;;;8624:18:1;;;8617:33;8667:19;;24375:71:0;8293:399:1;24375:71:0;-1:-1:-1;;;;;24466:21:0;;;;;;:10;:21;;;;;;;;24465:22;:45;;;;-1:-1:-1;;;;;;24492:18:0;;;;;;:10;:18;;;;;;;;24491:19;24465:45;24457:71;;;;-1:-1:-1;;;24457:71:0;;8899:2:1;24457:71:0;;;8881:21:1;8938:2;8918:18;;;8911:30;-1:-1:-1;;;8957:18:1;;;8950:43;9010:18;;24457:71:0;8697:337:1;24457:71:0;-1:-1:-1;;;;;24546:25:0;;;;;;:17;:25;;;;;;;;24545:26;:59;;;;-1:-1:-1;;;;;;24576:28:0;;;;;;:17;:28;;;;;;;;24575:29;24545:59;24541:126;;;24629:8;;;;24621:34;;;;-1:-1:-1;;;24621:34:0;;9241:2:1;24621:34:0;;;9223:21:1;9280:2;9260:18;;;9253:30;-1:-1:-1;;;9299:18:1;;;9292:43;9352:18;;24621:34:0;9039:337:1;24621:34:0;24683:16;;-1:-1:-1;;;24683:16:0;;;;24679:1241;;;24723:41;24738:6;24746:9;24757:6;24723:14;:41::i;:::-;24716:48;;;;24679:1241;24846:4;24797:28;20018:18;;;:9;:18;;;;;;24939:23;;24898:64;;;;;;;25001:61;;-1:-1:-1;25046:16:0;;-1:-1:-1;;;25046:16:0;;;;25045:17;25001:61;:103;;;;-1:-1:-1;;;;;;25084:20:0;;;;;;:12;:20;;;;;;;;25083:21;25001:103;:145;;;;-1:-1:-1;25125:21:0;;-1:-1:-1;;;25125:21:0;;;;25001:145;24979:371;;;25185:25;;-1:-1:-1;;;25185:25:0;;;;25181:98;;;25256:23;;25233:46;;25181:98;25298:36;25313:20;25298:14;:36::i;:::-;25386:102;;;;;;;;;;;-1:-1:-1;;;25386:102:0;;;;;;;;-1:-1:-1;;;;;25386:17:0;;-1:-1:-1;25386:17:0;;;:9;:17;;;;;;;;:102;;25426:6;;25386:21;:102::i;:::-;-1:-1:-1;;;;;25366:17:0;;;;;;:9;:17;;;;;;;;:122;;;;25541:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;25570:28:0;;;;;;:17;:28;;;;;;;;25541:57;25537:207;;;-1:-1:-1;25633:6:0;25537:207;;;25694:34;25702:6;25710:9;25721:6;25694:7;:34::i;:::-;25680:48;;25537:207;-1:-1:-1;;;;;25783:20:0;;;;;;:9;:20;;;;;;:37;;25808:11;25783:24;:37::i;:::-;-1:-1:-1;;;;;25760:20:0;;;;;;;:9;:20;;;;;;;:60;;;;25842:40;;;;;;;;;;25870:11;2141:25:1;;2129:2;2114:18;;1995:177;25842:40:0;;;;;;;;25904:4;25897:11;;;;;;;1616:226;1736:7;1772:12;1764:6;;;;1756:29;;;;-1:-1:-1;;;1756:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1796:9:0;1808:5;1812:1;1808;:5;:::i;:::-;1796:17;1616:226;-1:-1:-1;;;;;1616:226:0:o;1472:136::-;1530:7;1557:43;1561:1;1564;1557:43;;;;;;;;;;;;;;;;;:3;:43::i;1283:181::-;1341:7;;1373:5;1377:1;1373;:5;:::i;:::-;1361:17;;1402:1;1397;:6;;1389:46;;;;-1:-1:-1;;;1389:46:0;;9978:2:1;1389:46:0;;;9960:21:1;10017:2;9997:18;;;9990:30;10056:29;10036:18;;;10029:57;10103:18;;1389:46:0;9776:351:1;25935:401:0;26099:90;;;;;;;;;;;-1:-1:-1;;;26099:90:0;;;;;;;;-1:-1:-1;;;;;26099:17:0;;26062:4;26099:17;;;:9;:17;;;;;;;:90;;26135:6;;26099:21;:90::i;:::-;-1:-1:-1;;;;;26079:17:0;;;;;;;:9;:17;;;;;;:110;;;;26223:20;;;;;;;:32;;26248:6;26223:24;:32::i;:::-;-1:-1:-1;;;;;26200:20:0;;;;;;;:9;:20;;;;;;;:55;;;;26271:35;;;;;;;;;;26299:6;2141:25:1;;2129:2;2114:18;;1995:177;26271:35:0;;;;;;;;-1:-1:-1;26324:4:0;25935:401;;;;;:::o;26344:1165::-;18399:16;:23;;-1:-1:-1;;;;18399:23:0;-1:-1:-1;;;18399:23:0;;;26499:24:::1;::::0;26464:15:::1;::::0;18399:23;;26438:107:::1;::::0;26543:1:::1;::::0;26438:86:::1;::::0;;;:7;;:25:::1;:42::i;:::-;:60:::0;::::1;:86::i;:107::-;26416:129:::0;-1:-1:-1;26556:21:0::1;26580:24;:7:::0;26416:129;26580:11:::1;:24::i;:::-;26556:48;;26617:31;26634:13;26617:16;:31::i;:::-;26783:15;::::0;26684:21:::1;::::0;26659:22:::1;::::0;26740:76:::1;::::0;26783:22:::1;::::0;26803:1:::1;26783:19;:22::i;:::-;26740:24;::::0;;:28:::1;:76::i;:::-;26718:98;;26829:26;26858:101;26957:1;26858:80;26926:11;26858:49;26891:15;;26858:14;:32;;:49;;;;:::i;:101::-;26829:130;;26970:21;26994:47;27029:11;26994:30;27013:10;;26994:14;:18;;:30;;;;:::i;:47::-;26970:71:::0;-1:-1:-1;27052:26:0::1;27081:81;26970:71:::0;27081:38:::1;:14:::0;27100:18;27081::::1;:38::i;:::-;:42:::0;::::1;:81::i;:::-;27052:110:::0;-1:-1:-1;27179:22:0;;27175:105:::1;;27237:22;::::0;27216:64:::1;::::0;27237:22:::1;::::0;::::1;-1:-1:-1::0;;;;;27237:22:0::1;27261:18:::0;27216:20:::1;:64::i;:::-;27297:17:::0;;27293:90:::1;;27350:17;::::0;27329:54:::1;::::0;-1:-1:-1;;;;;27350:17:0::1;27369:13:::0;27329:20:::1;:54::i;:::-;27421:1;27400:18;:22;:41;;;;;27440:1;27426:11;:15;27400:41;27396:105;;;27456:45;27469:11;27482:18;27456:12;:45::i;:::-;-1:-1:-1::0;;18445:16:0;:24;;-1:-1:-1;;;;18445:24:0;;;-1:-1:-1;;;;;;26344:1165:0:o;28708:624::-;-1:-1:-1;;;;;28886:20:0;;28828:7;28886:20;;;:12;:20;;;;;;28828:7;;28886:20;;28882:216;;;28935:38;28969:3;28935:29;28946:17;;28935:6;:10;;:29;;;;:::i;:38::-;28923:50;;28882:216;;;-1:-1:-1;;;;;28995:23:0;;;;;;:12;:23;;;;;;;;28991:107;;;29047:39;29082:3;29047:30;29058:18;;29047:6;:10;;:30;;;;:::i;:39::-;29035:51;;28991:107;29114:13;;29110:174;;29189:4;29171:24;;;;:9;:24;;;;;;:39;;29200:9;29171:28;:39::i;:::-;29162:4;29144:24;;;;:9;:24;;;;;;;:66;;;;29230:42;;-1:-1:-1;;;;;29230:42:0;;;;;;;29262:9;2141:25:1;;2129:2;2114:18;;1995:177;29230:42:0;;;;;;;;29110:174;29303:21;:6;29314:9;29303:10;:21::i;1850:250::-;1908:7;1932:1;1937;1932:6;1928:47;;-1:-1:-1;1962:1:0;1955:8;;1928:47;1987:9;1999:5;2003:1;1999;:5;:::i;:::-;1987:17;-1:-1:-1;2032:1:0;2023:5;2027:1;1987:17;2023:5;:::i;:::-;:10;2015:56;;;;-1:-1:-1;;;2015:56:0;;10729:2:1;2015:56:0;;;10711:21:1;10768:2;10748:18;;;10741:30;10807:34;10787:18;;;10780:62;-1:-1:-1;;;10858:18:1;;;10851:31;10899:19;;2015:56:0;10527:397:1;2108:132:0;2166:7;2193:39;2197:1;2200;2193:39;;;;;;;;;;;;;;;;;:3;:39::i;27517:658::-;27667:16;;;27681:1;27667:16;;;;;;;;27643:21;;27667:16;;;;;;;;;;-1:-1:-1;27667:16:0;27643:40;;27712:4;27694;27699:1;27694:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;27694:23:0;;;:7;;;;;;;;;;:23;;;;27738:15;;:22;;;-1:-1:-1;;;27738:22:0;;;;:15;;;;;:20;;:22;;;;;27694:7;;27738:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27728:4;27733:1;27728:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;27728:32:0;;;:7;;;;;;;;;:32;27805:15;;27773:62;;27790:4;;27805:15;27823:11;27773:8;:62::i;:::-;27874:15;;:240;;-1:-1:-1;;;27874:240:0;;-1:-1:-1;;;;;27874:15:0;;;;:66;;:240;;27955:11;;27874:15;;28025:4;;28052;;28088:15;;27874:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28132:35;28149:11;28162:4;28132:35;;;;;;;:::i;:::-;;;;;;;;27572:603;27517:658;:::o;22406:140::-;22512:26;;-1:-1:-1;;;;;22512:18:0;;;:26;;;;;22531:6;;22512:26;;;;22531:6;22512:18;:26;;;;;;;;;;;;;;;;;;;;;22406:140;;:::o;28183:517::-;28363:15;;28331:62;;28348:4;;-1:-1:-1;;;;;28363:15:0;28381:11;28331:8;:62::i;:::-;28436:15;;:256;;-1:-1:-1;;;28436:256:0;;28508:4;28436:256;;;12796:34:1;12846:18;;;12839:34;;;-1:-1:-1;12889:18:1;;;12882:34;;;12932:18;;;12925:34;-1:-1:-1;;;;;28640:11:0;12996:15:1;;12975:19;;;12968:44;28666:15:0;13028:19:1;;;13021:35;28436:15:0;;;;:31;;28475:9;;12730:19:1;;28436:256:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;28183:517;;:::o;2248:312::-;2368:7;2403:12;2396:5;2388:28;;;;-1:-1:-1;;;2388:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2427:9:0;2439:5;2443:1;2439;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:316::-;644:6;652;660;713:2;701:9;692:7;688:23;684:32;681:52;;;729:1;726;719:12;681:52;-1:-1:-1;;752:23:1;;;822:2;807:18;;794:32;;-1:-1:-1;873:2:1;858:18;;;845:32;;567:316;-1:-1:-1;567:316:1:o;888:131::-;-1:-1:-1;;;;;963:31:1;;953:42;;943:70;;1009:1;1006;999:12;943:70;888:131;:::o;1024:315::-;1092:6;1100;1153:2;1141:9;1132:7;1128:23;1124:32;1121:52;;;1169:1;1166;1159:12;1121:52;1208:9;1195:23;1227:31;1252:5;1227:31;:::i;:::-;1277:5;1329:2;1314:18;;;;1301:32;;-1:-1:-1;;;1024:315:1:o;2177:456::-;2254:6;2262;2270;2323:2;2311:9;2302:7;2298:23;2294:32;2291:52;;;2339:1;2336;2329:12;2291:52;2378:9;2365:23;2397:31;2422:5;2397:31;:::i;:::-;2447:5;-1:-1:-1;2504:2:1;2489:18;;2476:32;2517:33;2476:32;2517:33;:::i;:::-;2177:456;;2569:7;;-1:-1:-1;;;2623:2:1;2608:18;;;;2595:32;;2177:456::o;3035:180::-;3094:6;3147:2;3135:9;3126:7;3122:23;3118:32;3115:52;;;3163:1;3160;3153:12;3115:52;-1:-1:-1;3186:23:1;;3035:180;-1:-1:-1;3035:180:1:o;3220:247::-;3279:6;3332:2;3320:9;3311:7;3307:23;3303:32;3300:52;;;3348:1;3345;3338:12;3300:52;3387:9;3374:23;3406:31;3431:5;3406:31;:::i;3472:160::-;3537:20;;3593:13;;3586:21;3576:32;;3566:60;;3622:1;3619;3612:12;3566:60;3472:160;;;:::o;3637:689::-;3729:6;3737;3745;3798:2;3786:9;3777:7;3773:23;3769:32;3766:52;;;3814:1;3811;3804:12;3766:52;3854:9;3841:23;3883:18;3924:2;3916:6;3913:14;3910:34;;;3940:1;3937;3930:12;3910:34;3978:6;3967:9;3963:22;3953:32;;4023:7;4016:4;4012:2;4008:13;4004:27;3994:55;;4045:1;4042;4035:12;3994:55;4085:2;4072:16;4111:2;4103:6;4100:14;4097:34;;;4127:1;4124;4117:12;4097:34;4182:7;4175:4;4165:6;4162:1;4158:14;4154:2;4150:23;4146:34;4143:47;4140:67;;;4203:1;4200;4193:12;4140:67;4234:4;4226:13;;;;-1:-1:-1;4258:6:1;-1:-1:-1;4283:37:1;;4299:20;;;-1:-1:-1;4283:37:1;:::i;:::-;4273:47;;3637:689;;;;;:::o;4331:315::-;4396:6;4404;4457:2;4445:9;4436:7;4432:23;4428:32;4425:52;;;4473:1;4470;4463:12;4425:52;4512:9;4499:23;4531:31;4556:5;4531:31;:::i;:::-;4581:5;-1:-1:-1;4605:35:1;4636:2;4621:18;;4605:35;:::i;:::-;4595:45;;4331:315;;;;;:::o;4651:180::-;4707:6;4760:2;4748:9;4739:7;4735:23;4731:32;4728:52;;;4776:1;4773;4766:12;4728:52;4799:26;4815:9;4799:26;:::i;4836:388::-;4904:6;4912;4965:2;4953:9;4944:7;4940:23;4936:32;4933:52;;;4981:1;4978;4971:12;4933:52;5020:9;5007:23;5039:31;5064:5;5039:31;:::i;:::-;5089:5;-1:-1:-1;5146:2:1;5131:18;;5118:32;5159:33;5118:32;5159:33;:::i;:::-;5211:7;5201:17;;;4836:388;;;;;:::o;5229:356::-;5431:2;5413:21;;;5450:18;;;5443:30;5509:34;5504:2;5489:18;;5482:62;5576:2;5561:18;;5229:356::o;5590:380::-;5669:1;5665:12;;;;5712;;;5733:61;;5787:4;5779:6;5775:17;5765:27;;5733:61;5840:2;5832:6;5829:14;5809:18;5806:38;5803:161;;5886:10;5881:3;5877:20;5874:1;5867:31;5921:4;5918:1;5911:15;5949:4;5946:1;5939:15;5803:161;;5590:380;;;:::o;5975:251::-;6045:6;6098:2;6086:9;6077:7;6073:23;6069:32;6066:52;;;6114:1;6111;6104:12;6066:52;6146:9;6140:16;6165:31;6190:5;6165:31;:::i;6540:127::-;6601:10;6596:3;6592:20;6589:1;6582:31;6632:4;6629:1;6622:15;6656:4;6653:1;6646:15;9381:127;9442:10;9437:3;9433:20;9430:1;9423:31;9473:4;9470:1;9463:15;9497:4;9494:1;9487:15;9513:128;9580:9;;;9601:11;;;9598:37;;;9615:18;;:::i;9646:125::-;9711:9;;;9732:10;;;9729:36;;;9745:18;;:::i;10132:168::-;10205:9;;;10236;;10253:15;;;10247:22;;10233:37;10223:71;;10274:18;;:::i;10305:217::-;10345:1;10371;10361:132;;10415:10;10410:3;10406:20;10403:1;10396:31;10450:4;10447:1;10440:15;10478:4;10475:1;10468:15;10361:132;-1:-1:-1;10507:9:1;;10305:217::o;11061:465::-;11114:3;11152:5;11146:12;11179:6;11174:3;11167:19;11205:4;11234;11229:3;11225:14;11218:21;;11273:4;11266:5;11262:16;11296:1;11306:195;11320:6;11317:1;11314:13;11306:195;;;11385:13;;-1:-1:-1;;;;;11381:39:1;11369:52;;11441:12;;;;11476:15;;;;11417:1;11335:9;11306:195;;;-1:-1:-1;11517:3:1;;11061:465;-1:-1:-1;;;;;11061:465:1:o;11531:582::-;11830:6;11819:9;11812:25;11873:6;11868:2;11857:9;11853:18;11846:34;11916:3;11911:2;11900:9;11896:18;11889:31;11793:4;11937:57;11989:3;11978:9;11974:19;11966:6;11937:57;:::i;:::-;-1:-1:-1;;;;;12030:32:1;;;;12025:2;12010:18;;12003:60;-1:-1:-1;12094:3:1;12079:19;12072:35;11929:65;11531:582;-1:-1:-1;;;11531:582:1:o;12118:332::-;12325:6;12314:9;12307:25;12368:2;12363;12352:9;12348:18;12341:30;12288:4;12388:56;12440:2;12429:9;12425:18;12417:6;12388:56;:::i;:::-;12380:64;12118:332;-1:-1:-1;;;;12118:332:1:o;13067:306::-;13155:6;13163;13171;13224:2;13212:9;13203:7;13199:23;13195:32;13192:52;;;13240:1;13237;13230:12;13192:52;13269:9;13263:16;13253:26;;13319:2;13308:9;13304:18;13298:25;13288:35;;13363:2;13352:9;13348:18;13342:25;13332:35;;13067:306;;;;;:::o
Swarm Source
ipfs://509a2d63852b48fa43587003bfbe15c1a29ecd9d7ccee5f24baa1b60639b7619
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.