ERC-20
Overview
Max Total Supply
100,000 ShiBurn
Holders
178
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.348104539405508925 ShiBurnValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ShiBurn
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-02-28 */ //SPDX-License-Identifier: MIT pragma solidity ^0.8.12; interface IBEP20 { function totalSupply() external view returns (uint); function balanceOf(address account) external view returns (uint); function transfer(address recipient, uint amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint amount) external returns (bool); function transferFrom(address sender, address recipient, uint amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint value); event Approval(address indexed owner, address indexed spender, uint value); } library SafeMath { function add(uint a, uint b) internal pure returns (uint) { uint c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint a, uint b) internal pure returns (uint) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint a, uint b, string memory errorMessage) internal pure returns (uint) { require(b <= a, errorMessage); uint c = a - b; return c; } function mul(uint a, uint b) internal pure returns (uint) { if (a == 0) { return 0; } uint c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint a, uint b) internal pure returns (uint) { return div(a, b, "SafeMath: division by zero"); } function div(uint a, uint b, string memory errorMessage) internal pure returns (uint) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint c = a / b; return c; } } contract Context { constructor () { } // solhint-disable-previous-line no-empty-blocks function _msgSender() internal view returns (address) { return msg.sender; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { _owner = msg.sender ; emit OwnershipTransferred(address(0), _owner); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender() , "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract BEP20Detailed { string private _name; string private _symbol; uint8 private _decimals; constructor (string memory tname, string memory tsymbol, uint8 tdecimals) { _name = tname; _symbol = tsymbol; _decimals = tdecimals; } 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; } } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != 0x0 && codehash != accountHash); } } library SafeBEP20 { using SafeMath for uint; using Address for address; function safeTransfer(IBEP20 token, address to, uint value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IBEP20 token, address from, address to, uint value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function safeApprove(IBEP20 token, address spender, uint value) internal { require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeBEP20: approve from non-zero to non-zero allowance" ); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function callOptionalReturn(IBEP20 token, bytes memory data) private { require(address(token).isContract(), "SafeBEP20: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = address(token).call(data); require(success, "SafeBEP20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeBEP20: BEP20 operation did not succeed"); } } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); 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(uint) external view returns (address pair); function allPairsLength() external view returns (uint); 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, uint value); event Transfer(address indexed from, address indexed to, uint 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 (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint 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 (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); 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 (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint 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, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IPinkAntiBot { function setTokenOwner(address owner) external; function onPreTransferCheck( address from, address to, uint256 amount ) external; } contract ShiBurn is Context, Ownable, IBEP20, BEP20Detailed { using SafeBEP20 for IBEP20; using Address for address; using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; mapping (address => uint) internal _balances; mapping (address => mapping (address => uint)) internal _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcludedFromMaxWallet; mapping (address => bool) private AMMs; mapping (address => bool) isTimelockExempt; uint256 internal _totalSupply; uint256 public marketingFee = 5; uint256 public buybackFee = 10; address payable public marketingaddress = payable(0x95B9aC1C01a331e9B473AadDe510442d63aC5D3B); address payable public buybackAddress = payable(0x4bcfCa6142d4A26F2CC727Ca35924786985812EB); bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public isTradingEnabled; // Cooldown & timer functionality bool public buyCooldownEnabled = true; uint8 public cooldownTimerInterval = 60; mapping (address => uint) private cooldownTimer; uint256 public numTokensSellToAddToLiquidity = 100 * 10**18; uint256 public maxWalletAmount = 1000 * 10**18; event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } address public _owner; constructor () BEP20Detailed("ShiBurn", "ShiBurn", 18) { _owner = msg.sender ; _totalSupply = 100000 * (10**18); _balances[_owner] = _totalSupply; //uniswapv3 router = 0xE592427A0AEce92De3Edee1F18E0157C05861564 IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Create a uniswap pair for this new token uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); // set the rest of the contract variables uniswapV2Router = _uniswapV2Router; //exclude owner and this contract from fee _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[marketingaddress] = true; _isExcludedFromFee[buybackAddress] = true; _isExcludedFromMaxWallet[owner()] = true; _isExcludedFromMaxWallet[address(this)] = true; _isExcludedFromMaxWallet[marketingaddress] = true; _isExcludedFromMaxWallet[buybackAddress] = true; _isExcludedFromMaxWallet[uniswapV2Pair] = true; // No timelock for these people isTimelockExempt[msg.sender] = true; isTimelockExempt[marketingaddress] = true; isTimelockExempt[buybackAddress] = true; isTimelockExempt[address(this)] = true; isTimelockExempt[uniswapV2Pair] = true; AMMs[uniswapV2Pair] = true; emit Transfer(address(0), _msgSender(), _totalSupply); } function totalSupply() public view override returns (uint) { return _totalSupply; } function balanceOf(address account) public view override returns (uint) { return _balances[account]; } function transfer(address recipient, uint amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address towner, address spender) public view override returns (uint) { return _allowances[towner][spender]; } function approve(address spender, uint amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "BEP20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint addedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint subtractedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "BEP20: decreased allowance below zero")); return true; } function setMarketingFeePercent(uint256 updatedMarketingFee) external onlyOwner() { marketingFee = updatedMarketingFee; } function setBuybackFeePercent(uint256 updatedBuybackFee) external onlyOwner() { buybackFee = updatedBuybackFee; } function setMarketingAddress(address payable wallet) external onlyOwner { marketingaddress = wallet; } function setBuybackAddress(address payable wallet) external onlyOwner { buybackAddress = wallet; } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function changeNumTokensSellToAddToLiquidity(uint256 _numTokensSellToAddToLiquidity) external onlyOwner { numTokensSellToAddToLiquidity = _numTokensSellToAddToLiquidity; } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function excludeFromMaxWalletLimit(address account) external onlyOwner { _isExcludedFromMaxWallet[account] = true; } function includeInMaxWalletLimit(address account) external onlyOwner { _isExcludedFromMaxWallet[account] = false; } function excludeFromAMMs(address account) public onlyOwner { AMMs[account] = false; } function includeInAMMs(address account) public onlyOwner { AMMs[account] = true; _isExcludedFromMaxWallet[account] = true; isTimelockExempt[account] = true; } function setIsTimelockExempt(address holder, bool exempt) external onlyOwner { isTimelockExempt[holder] = exempt; } function enableTrading() external onlyOwner { isTradingEnabled = true; } function disableTrading() external onlyOwner { isTradingEnabled = false; } function changeMaxWalletAmount(uint256 _maxWalletAmount) external onlyOwner { maxWalletAmount = _maxWalletAmount; } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function _transfer(address sender, address recipient, uint amount) internal{ require(sender != address(0), "BEP20: transfer from the zero address"); require(recipient != address(0), "BEP20: transfer to the zero address"); if(sender != owner()) {require(isTradingEnabled, " Trading is not enabled yet");} // cooldown timer, so a bot doesnt do quick trades! 1min gap between 2 trades. if (sender == uniswapV2Pair && buyCooldownEnabled && !isTimelockExempt[recipient]) { require(cooldownTimer[recipient] < block.timestamp,"Please wait for 1min between two buys"); cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval; } if(!_isExcludedFromMaxWallet[recipient]) { require(_balances[recipient].add(amount) <= maxWalletAmount, "Account balance is exceeding the max wallet limit"); } uint256 taxAmount = (amount.mul(marketingFee+buybackFee)).div(100); // is the token balance of this contract address over the min number of // tokens that we need to initiate a swap + liquidity lock? // also, don't get caught in a circular liquidity event. // also, don't swap & liquify if sender is uniswap pair. uint256 contractTokenBalance = balanceOf(address(this)); bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity; if ( overMinTokenBalance && !inSwapAndLiquify && !AMMs[sender] && swapAndLiquifyEnabled ) { contractTokenBalance = numTokensSellToAddToLiquidity; swapAndLiquify(contractTokenBalance); } //indicates if fee should be deducted from transfer bool takeFee = true; //if any account belongs to _isExcludedFromFee account then remove the fee if(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]){ takeFee = false; } if(!AMMs[recipient] && !AMMs[sender]) {takeFee = false;} if(takeFee) { uint256 TotalSent = amount.sub(taxAmount); _balances[sender] = _balances[sender].sub(amount, "BEP20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(TotalSent); _balances[address(this)] = _balances[address(this)].add(taxAmount); emit Transfer(sender, recipient, TotalSent); emit Transfer(sender, address(this), taxAmount); } else { _balances[sender] = _balances[sender].sub(amount, "BEP20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } } // enable cooldown between trades function cooldownEnabled(bool _status, uint8 _interval) public onlyOwner { require(_interval <= 3600, "Limit reached"); buyCooldownEnabled = _status; cooldownTimerInterval = _interval; } function totalFee() internal view returns(uint256) { return marketingFee.add(buybackFee); } function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { uint256 initialBalance = address(this).balance; // swap tokens for ETH swapTokensForEth(contractTokenBalance); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered // how much ETH did we just swap into? uint256 newBalance = address(this).balance.sub(initialBalance); uint256 marketingShare = newBalance.mul(marketingFee).div(totalFee()); uint256 buybackShare = newBalance.sub(marketingShare); payable(marketingaddress).transfer(marketingShare); payable(buybackAddress).transfer(buybackShare); emit SwapAndLiquify(contractTokenBalance, newBalance); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function _approve(address towner, address spender, uint amount) internal { require(towner != address(0), "BEP20: approve from the zero address"); require(spender != address(0), "BEP20: approve to the zero address"); _allowances[towner][spender] = amount; emit Approval(towner, spender, amount); } function withdrawStuckBNB() external onlyOwner{ require (address(this).balance > 0, "Can't withdraw negative or zero"); payable(owner()).transfer(address(this).balance); } function removeStuckToken(address _address) external onlyOwner { require(_address != address(this), "Can't withdraw tokens destined for liquidity"); require(IBEP20(_address).balanceOf(address(this)) > 0, "Can't withdraw 0"); IBEP20(_address).transfer(owner(), IBEP20(_address).balanceOf(address(this))); } }
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":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","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"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"towner","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":[],"name":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletAmount","type":"uint256"}],"name":"changeMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_numTokensSellToAddToLiquidity","type":"uint256"}],"name":"changeNumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"cooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":"disableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromAMMs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInAMMs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingaddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"wallet","type":"address"}],"name":"setBuybackAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"updatedBuybackFee","type":"uint256"}],"name":"setBuybackFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTimelockExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"wallet","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"updatedMarketingFee","type":"uint256"}],"name":"setMarketingFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawStuckBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526005600b55600a600c55600d80546001600160a01b0319167395b9ac1c01a331e9b473aadde510442d63ac5d3b179055600e8054783c010001004bcfca6142d4a26f2cc727ca35924786985812eb600164ffff00ff0160a01b031990911617905568056bc75e2d63100000601055683635c9adc5dea000006011553480156200008c57600080fd5b5060408051808201825260078082526629b434a13ab93760c91b602080840182905284518086018652928352820152600080546001600160a01b03191633908117825593519293919260129291907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3825162000114906001906020860190620004c1565b5081516200012a906002906020850190620004c1565b506003805460ff90921660ff199092169190911790555050601280546001600160a01b0319163390811790915569152d02c7e14af6800000600a81905560009182526004602081815260409384902092909255825163c45a015560e01b81529251737a250d5630b4cf539739df2c5dacb4c659f2488d93849363c45a0155938281019391928290030181865afa158015620001c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ef919062000567565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000263919062000567565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d7919062000567565b6001600160a01b0390811660a0528116608052600160066000620003036000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526006909352818320805485166001908117909155600d54821684528284208054861682179055600e54909116835290822080549093168117909255600790620003856000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553080825260078552838220805487166001908117909155600d8054851684528584208054891683179055600e80548616855286852080548a168417905560a051861680865287862080548b16851790553386526009895287862080548b168517905591548616855286852080548a16841790555490941683528483208054881682179055908252838220805487168217905591815282812080548616831790556008909352912080549092161790556200046a3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620004b291815260200190565b60405180910390a350620005d6565b828054620004cf9062000599565b90600052602060002090601f016020900481019282620004f357600085556200053e565b82601f106200050e57805160ff19168380011785556200053e565b828001600101855582156200053e579182015b828111156200053e57825182559160200191906001019062000521565b506200054c92915062000550565b5090565b5b808211156200054c576000815560010162000551565b6000602082840312156200057a57600080fd5b81516001600160a01b03811681146200059257600080fd5b9392505050565b600181811c90821680620005ae57607f821691505b60208210811415620005d057634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05161245e62000618600039600081816104ca015261162f01526000818161033901528181611e8b01528181611f440152611f80015261245e6000f3fe6080604052600436106102815760003560e01c8063715018a61161014f578063aa4bde28116100c1578063dd62ed3e1161007a578063dd62ed3e146107a4578063e083e922146107ea578063e0f07e3a1461080a578063ea2f0b371461082a578063f2fde38b1461084a578063fda55a3d1461086a57600080fd5b8063aa4bde28146106f8578063b2bdfa7b1461070e578063c49b9a801461072e578063c57a6c441461074e578063cc2fbd661461076e578063d12a76881461078e57600080fd5b80638da5cb5b116101135780638da5cb5b14610645578063906e9dd01461066357806395d89b41146106835780639f71146d14610698578063a457c2d7146106b8578063a9059cbb146106d857600080fd5b8063715018a6146105ba578063722b62ad146105cf5780637e88880d146105f057806381bfdcca146106105780638a8c523c1461063057600080fd5b806339509351116101f35780634a74bb02116101ac5780634a74bb02146104ec57806350db71fb1461050d5780635ec270c81461052d578063617fe0ed1461054d5780636b67c4df1461056e57806370a082311461058457600080fd5b8063395093511461042d5780633b2d081c1461044d578063437823ec14610463578063457c194c14610483578063484ed334146104a357806349bd5a5e146104b857600080fd5b806317700f011161024557806317700f011461037357806318160ddd1461038857806323b872dd146103a75780632d594567146103c7578063313ce567146103e75780633722355c1461040d57600080fd5b806301b95e1d1461028d578063064a59d0146102af57806306fdde03146102e5578063095ea7b3146103075780631694505e1461032757600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102ad6102a8366004612027565b61088a565b005b3480156102bb57600080fd5b50600e546102d090600160b01b900460ff1681565b60405190151581526020015b60405180910390f35b3480156102f157600080fd5b506102fa610908565b6040516102dc9190612044565b34801561031357600080fd5b506102d0610322366004612099565b61099a565b34801561033357600080fd5b5061035b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102dc565b34801561037f57600080fd5b506102ad6109b1565b34801561039457600080fd5b50600a545b6040519081526020016102dc565b3480156103b357600080fd5b506102d06103c23660046120c5565b6109ea565b3480156103d357600080fd5b506102ad6103e2366004612114565b610a53565b3480156103f357600080fd5b5060035460ff165b60405160ff90911681526020016102dc565b34801561041957600080fd5b506102ad610428366004612027565b610af9565b34801561043957600080fd5b506102d0610448366004612099565b610b47565b34801561045957600080fd5b50610399600c5481565b34801561046f57600080fd5b506102ad61047e366004612027565b610b7d565b34801561048f57600080fd5b506102ad61049e366004612153565b610bcb565b3480156104af57600080fd5b506102ad610bfa565b3480156104c457600080fd5b5061035b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f857600080fd5b50600e546102d090600160a81b900460ff1681565b34801561051957600080fd5b506102ad61052836600461216c565b610cb1565b34801561053957600080fd5b506102ad610548366004612027565b610d06565b34801561055957600080fd5b50600e546102d090600160b81b900460ff1681565b34801561057a57600080fd5b50610399600b5481565b34801561059057600080fd5b5061039961059f366004612027565b6001600160a01b031660009081526004602052604090205490565b3480156105c657600080fd5b506102ad610d51565b3480156105db57600080fd5b50600e546103fb90600160c01b900460ff1681565b3480156105fc57600080fd5b506102ad61060b366004612027565b610dc5565b34801561061c57600080fd5b506102ad61062b366004612153565b610e11565b34801561063c57600080fd5b506102ad610e40565b34801561065157600080fd5b506000546001600160a01b031661035b565b34801561066f57600080fd5b506102ad61067e366004612027565b610e7f565b34801561068f57600080fd5b506102fa610ecb565b3480156106a457600080fd5b506102ad6106b3366004612027565b610eda565b3480156106c457600080fd5b506102d06106d3366004612099565b610f25565b3480156106e457600080fd5b506102d06106f3366004612099565b610f74565b34801561070457600080fd5b5061039960115481565b34801561071a57600080fd5b5060125461035b906001600160a01b031681565b34801561073a57600080fd5b506102ad61074936600461219a565b610f81565b34801561075a57600080fd5b506102ad610769366004612153565b611003565b34801561077a57600080fd5b50600e5461035b906001600160a01b031681565b34801561079a57600080fd5b5061039960105481565b3480156107b057600080fd5b506103996107bf3660046121b7565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156107f657600080fd5b506102ad610805366004612027565b611032565b34801561081657600080fd5b50600d5461035b906001600160a01b031681565b34801561083657600080fd5b506102ad610845366004612027565b611271565b34801561085657600080fd5b506102ad610865366004612027565b6112bc565b34801561087657600080fd5b506102ad610885366004612153565b6113a6565b6000546001600160a01b031633146108bd5760405162461bcd60e51b81526004016108b4906121e5565b60405180910390fd5b6001600160a01b031660009081526008602090815260408083208054600160ff1991821681179092556007845282852080548216831790556009909352922080549091169091179055565b6060600180546109179061221a565b80601f01602080910402602001604051908101604052809291908181526020018280546109439061221a565b80156109905780601f1061096557610100808354040283529160200191610990565b820191906000526020600020905b81548152906001019060200180831161097357829003601f168201915b5050505050905090565b60006109a73384846113d5565b5060015b92915050565b6000546001600160a01b031633146109db5760405162461bcd60e51b81526004016108b4906121e5565b600e805460ff60b01b19169055565b60006109f78484846114f9565b610a498433610a44856040518060600160405280602881526020016123b6602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611b4b565b6113d5565b5060019392505050565b6000546001600160a01b03163314610a7d5760405162461bcd60e51b81526004016108b4906121e5565b610e108160ff161115610ac25760405162461bcd60e51b815260206004820152600d60248201526c131a5b5a5d081c995858da1959609a1b60448201526064016108b4565b600e805461ffff60b81b1916600160b81b9315159390930260ff60c01b191692909217600160c01b60ff9290921691909102179055565b6000546001600160a01b03163314610b235760405162461bcd60e51b81526004016108b4906121e5565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916109a7918590610a449086611b85565b6000546001600160a01b03163314610ba75760405162461bcd60e51b81526004016108b4906121e5565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6000546001600160a01b03163314610bf55760405162461bcd60e51b81526004016108b4906121e5565b600b55565b6000546001600160a01b03163314610c245760405162461bcd60e51b81526004016108b4906121e5565b60004711610c745760405162461bcd60e51b815260206004820152601f60248201527f43616e2774207769746864726177206e65676174697665206f72207a65726f0060448201526064016108b4565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610cae573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610cdb5760405162461bcd60e51b81526004016108b4906121e5565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d305760405162461bcd60e51b81526004016108b4906121e5565b6001600160a01b03166000908152600860205260409020805460ff19169055565b6000546001600160a01b03163314610d7b5760405162461bcd60e51b81526004016108b4906121e5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610def5760405162461bcd60e51b81526004016108b4906121e5565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610e3b5760405162461bcd60e51b81526004016108b4906121e5565b601155565b6000546001600160a01b03163314610e6a5760405162461bcd60e51b81526004016108b4906121e5565b600e805460ff60b01b1916600160b01b179055565b6000546001600160a01b03163314610ea95760405162461bcd60e51b81526004016108b4906121e5565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600280546109179061221a565b6000546001600160a01b03163314610f045760405162461bcd60e51b81526004016108b4906121e5565b6001600160a01b03166000908152600760205260409020805460ff19169055565b60006109a73384610a4485604051806060016040528060258152602001612404602591393360009081526005602090815260408083206001600160a01b038d1684529091529020549190611b4b565b60006109a73384846114f9565b6000546001600160a01b03163314610fab5760405162461bcd60e51b81526004016108b4906121e5565b600e8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610ff890831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461102d5760405162461bcd60e51b81526004016108b4906121e5565b601055565b6000546001600160a01b0316331461105c5760405162461bcd60e51b81526004016108b4906121e5565b6001600160a01b0381163014156110ca5760405162461bcd60e51b815260206004820152602c60248201527f43616e277420776974686472617720746f6b656e732064657374696e6564206660448201526b6f72206c697175696469747960a01b60648201526084016108b4565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611111573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111359190612255565b116111755760405162461bcd60e51b815260206004820152601060248201526f043616e277420776974686472617720360841b60448201526064016108b4565b806001600160a01b031663a9059cbb6111966000546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156111da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fe9190612255565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611249573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126d919061226e565b5050565b6000546001600160a01b0316331461129b5760405162461bcd60e51b81526004016108b4906121e5565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146112e65760405162461bcd60e51b81526004016108b4906121e5565b6001600160a01b03811661134b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108b4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146113d05760405162461bcd60e51b81526004016108b4906121e5565b600c55565b6001600160a01b0383166114375760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108b4565b6001600160a01b0382166114985760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108b4565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661155d5760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108b4565b6001600160a01b0382166115bf5760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108b4565b6000546001600160a01b0384811691161461162d57600e54600160b01b900460ff1661162d5760405162461bcd60e51b815260206004820152601b60248201527f2054726164696e67206973206e6f7420656e61626c656420796574000000000060448201526064016108b4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161480156116775750600e54600160b81b900460ff165b801561169c57506001600160a01b03821660009081526009602052604090205460ff16155b15611747576001600160a01b0382166000908152600f602052604090205442116117165760405162461bcd60e51b815260206004820152602560248201527f506c65617365207761697420666f7220316d696e206265747765656e2074776f604482015264206275797360d81b60648201526084016108b4565b600e5461172d90600160c01b900460ff16426122a1565b6001600160a01b0383166000908152600f60205260409020555b6001600160a01b03821660009081526007602052604090205460ff166117f5576011546001600160a01b03831660009081526004602052604090205461178d9083611b85565b11156117f55760405162461bcd60e51b815260206004820152603160248201527f4163636f756e742062616c616e636520697320657863656564696e6720746865604482015270081b585e081dd85b1b195d081b1a5b5a5d607a1b60648201526084016108b4565b600061181c6064611816600c54600b5461180f91906122a1565b8590611beb565b90611c6a565b30600090815260046020526040902054601054919250908110801590819061184e5750600e54600160a01b900460ff16155b801561187357506001600160a01b03861660009081526008602052604090205460ff16155b80156118885750600e54600160a81b900460ff165b1561189b57601054915061189b82611cac565b6001600160a01b03861660009081526006602052604090205460019060ff16806118dd57506001600160a01b03861660009081526006602052604090205460ff165b156118e6575060005b6001600160a01b03861660009081526008602052604090205460ff1615801561192857506001600160a01b03871660009081526008602052604090205460ff16155b15611931575060005b8015611a795760006119438686611dc4565b9050611982866040518060600160405280602681526020016123de602691396001600160a01b038b166000908152600460205260409020549190611b4b565b6001600160a01b03808a1660009081526004602052604080822093909355908916815220546119b19082611b85565b6001600160a01b0388166000908152600460205260408082209290925530815220546119dd9086611b85565b3060009081526004602090815260409182902092909255518281526001600160a01b0389811692908b16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a360405185815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350611b42565b611ab6856040518060600160405280602681526020016123de602691396001600160a01b038a166000908152600460205260409020549190611b4b565b6001600160a01b038089166000908152600460205260408082209390935590881681522054611ae59086611b85565b6001600160a01b0380881660008181526004602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b399089815260200190565b60405180910390a35b50505050505050565b60008184841115611b6f5760405162461bcd60e51b81526004016108b49190612044565b506000611b7c84866122b9565b95945050505050565b600080611b9283856122a1565b905083811015611be45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108b4565b9392505050565b600082611bfa575060006109ab565b6000611c0683856122d0565b905082611c1385836122ef565b14611be45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108b4565b6000611be483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e06565b600e805460ff60a01b1916600160a01b17905547611cc982611e34565b6000611cd54783611dc4565b90506000611cf2611ce4611ff4565b600b54611816908590611beb565b90506000611d008383611dc4565b600d546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015611d3b573d6000803e3d6000fd5b50600e546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611d76573d6000803e3d6000fd5b5060408051868152602081018590527f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f8381486910160405180910390a15050600e805460ff60a01b19169055505050565b6000611be483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b4b565b60008183611e275760405162461bcd60e51b81526004016108b49190612044565b506000611b7c84866122ef565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611e6957611e69612311565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ee7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0b9190612327565b81600181518110611f1e57611f1e612311565b60200260200101906001600160a01b031690816001600160a01b031681525050611f69307f0000000000000000000000000000000000000000000000000000000000000000846113d5565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611fbe908590600090869030904290600401612344565b600060405180830381600087803b158015611fd857600080fd5b505af1158015611fec573d6000803e3d6000fd5b505050505050565b600061200d600c54600b54611b8590919063ffffffff16565b905090565b6001600160a01b0381168114610cae57600080fd5b60006020828403121561203957600080fd5b8135611be481612012565b600060208083528351808285015260005b8181101561207157858101830151858201604001528201612055565b81811115612083576000604083870101525b50601f01601f1916929092016040019392505050565b600080604083850312156120ac57600080fd5b82356120b781612012565b946020939093013593505050565b6000806000606084860312156120da57600080fd5b83356120e581612012565b925060208401356120f581612012565b929592945050506040919091013590565b8015158114610cae57600080fd5b6000806040838503121561212757600080fd5b823561213281612106565b9150602083013560ff8116811461214857600080fd5b809150509250929050565b60006020828403121561216557600080fd5b5035919050565b6000806040838503121561217f57600080fd5b823561218a81612012565b9150602083013561214881612106565b6000602082840312156121ac57600080fd5b8135611be481612106565b600080604083850312156121ca57600080fd5b82356121d581612012565b9150602083013561214881612012565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061222e57607f821691505b6020821081141561224f57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561226757600080fd5b5051919050565b60006020828403121561228057600080fd5b8151611be481612106565b634e487b7160e01b600052601160045260246000fd5b600082198211156122b4576122b461228b565b500190565b6000828210156122cb576122cb61228b565b500390565b60008160001904831182151516156122ea576122ea61228b565b500290565b60008261230c57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561233957600080fd5b8151611be481612012565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123945784516001600160a01b03168352938301939183019160010161236f565b50506001600160a01b0396909616606085015250505060800152939250505056fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220aad6085be7a0d1891427e6007d9a01ad70054227fae329725a0f31c9e50cb7c064736f6c634300080c0033
Deployed Bytecode
0x6080604052600436106102815760003560e01c8063715018a61161014f578063aa4bde28116100c1578063dd62ed3e1161007a578063dd62ed3e146107a4578063e083e922146107ea578063e0f07e3a1461080a578063ea2f0b371461082a578063f2fde38b1461084a578063fda55a3d1461086a57600080fd5b8063aa4bde28146106f8578063b2bdfa7b1461070e578063c49b9a801461072e578063c57a6c441461074e578063cc2fbd661461076e578063d12a76881461078e57600080fd5b80638da5cb5b116101135780638da5cb5b14610645578063906e9dd01461066357806395d89b41146106835780639f71146d14610698578063a457c2d7146106b8578063a9059cbb146106d857600080fd5b8063715018a6146105ba578063722b62ad146105cf5780637e88880d146105f057806381bfdcca146106105780638a8c523c1461063057600080fd5b806339509351116101f35780634a74bb02116101ac5780634a74bb02146104ec57806350db71fb1461050d5780635ec270c81461052d578063617fe0ed1461054d5780636b67c4df1461056e57806370a082311461058457600080fd5b8063395093511461042d5780633b2d081c1461044d578063437823ec14610463578063457c194c14610483578063484ed334146104a357806349bd5a5e146104b857600080fd5b806317700f011161024557806317700f011461037357806318160ddd1461038857806323b872dd146103a75780632d594567146103c7578063313ce567146103e75780633722355c1461040d57600080fd5b806301b95e1d1461028d578063064a59d0146102af57806306fdde03146102e5578063095ea7b3146103075780631694505e1461032757600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102ad6102a8366004612027565b61088a565b005b3480156102bb57600080fd5b50600e546102d090600160b01b900460ff1681565b60405190151581526020015b60405180910390f35b3480156102f157600080fd5b506102fa610908565b6040516102dc9190612044565b34801561031357600080fd5b506102d0610322366004612099565b61099a565b34801561033357600080fd5b5061035b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102dc565b34801561037f57600080fd5b506102ad6109b1565b34801561039457600080fd5b50600a545b6040519081526020016102dc565b3480156103b357600080fd5b506102d06103c23660046120c5565b6109ea565b3480156103d357600080fd5b506102ad6103e2366004612114565b610a53565b3480156103f357600080fd5b5060035460ff165b60405160ff90911681526020016102dc565b34801561041957600080fd5b506102ad610428366004612027565b610af9565b34801561043957600080fd5b506102d0610448366004612099565b610b47565b34801561045957600080fd5b50610399600c5481565b34801561046f57600080fd5b506102ad61047e366004612027565b610b7d565b34801561048f57600080fd5b506102ad61049e366004612153565b610bcb565b3480156104af57600080fd5b506102ad610bfa565b3480156104c457600080fd5b5061035b7f000000000000000000000000e46dc554beef86116ddf0a13d05c9de5d216d4c781565b3480156104f857600080fd5b50600e546102d090600160a81b900460ff1681565b34801561051957600080fd5b506102ad61052836600461216c565b610cb1565b34801561053957600080fd5b506102ad610548366004612027565b610d06565b34801561055957600080fd5b50600e546102d090600160b81b900460ff1681565b34801561057a57600080fd5b50610399600b5481565b34801561059057600080fd5b5061039961059f366004612027565b6001600160a01b031660009081526004602052604090205490565b3480156105c657600080fd5b506102ad610d51565b3480156105db57600080fd5b50600e546103fb90600160c01b900460ff1681565b3480156105fc57600080fd5b506102ad61060b366004612027565b610dc5565b34801561061c57600080fd5b506102ad61062b366004612153565b610e11565b34801561063c57600080fd5b506102ad610e40565b34801561065157600080fd5b506000546001600160a01b031661035b565b34801561066f57600080fd5b506102ad61067e366004612027565b610e7f565b34801561068f57600080fd5b506102fa610ecb565b3480156106a457600080fd5b506102ad6106b3366004612027565b610eda565b3480156106c457600080fd5b506102d06106d3366004612099565b610f25565b3480156106e457600080fd5b506102d06106f3366004612099565b610f74565b34801561070457600080fd5b5061039960115481565b34801561071a57600080fd5b5060125461035b906001600160a01b031681565b34801561073a57600080fd5b506102ad61074936600461219a565b610f81565b34801561075a57600080fd5b506102ad610769366004612153565b611003565b34801561077a57600080fd5b50600e5461035b906001600160a01b031681565b34801561079a57600080fd5b5061039960105481565b3480156107b057600080fd5b506103996107bf3660046121b7565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156107f657600080fd5b506102ad610805366004612027565b611032565b34801561081657600080fd5b50600d5461035b906001600160a01b031681565b34801561083657600080fd5b506102ad610845366004612027565b611271565b34801561085657600080fd5b506102ad610865366004612027565b6112bc565b34801561087657600080fd5b506102ad610885366004612153565b6113a6565b6000546001600160a01b031633146108bd5760405162461bcd60e51b81526004016108b4906121e5565b60405180910390fd5b6001600160a01b031660009081526008602090815260408083208054600160ff1991821681179092556007845282852080548216831790556009909352922080549091169091179055565b6060600180546109179061221a565b80601f01602080910402602001604051908101604052809291908181526020018280546109439061221a565b80156109905780601f1061096557610100808354040283529160200191610990565b820191906000526020600020905b81548152906001019060200180831161097357829003601f168201915b5050505050905090565b60006109a73384846113d5565b5060015b92915050565b6000546001600160a01b031633146109db5760405162461bcd60e51b81526004016108b4906121e5565b600e805460ff60b01b19169055565b60006109f78484846114f9565b610a498433610a44856040518060600160405280602881526020016123b6602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611b4b565b6113d5565b5060019392505050565b6000546001600160a01b03163314610a7d5760405162461bcd60e51b81526004016108b4906121e5565b610e108160ff161115610ac25760405162461bcd60e51b815260206004820152600d60248201526c131a5b5a5d081c995858da1959609a1b60448201526064016108b4565b600e805461ffff60b81b1916600160b81b9315159390930260ff60c01b191692909217600160c01b60ff9290921691909102179055565b6000546001600160a01b03163314610b235760405162461bcd60e51b81526004016108b4906121e5565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916109a7918590610a449086611b85565b6000546001600160a01b03163314610ba75760405162461bcd60e51b81526004016108b4906121e5565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6000546001600160a01b03163314610bf55760405162461bcd60e51b81526004016108b4906121e5565b600b55565b6000546001600160a01b03163314610c245760405162461bcd60e51b81526004016108b4906121e5565b60004711610c745760405162461bcd60e51b815260206004820152601f60248201527f43616e2774207769746864726177206e65676174697665206f72207a65726f0060448201526064016108b4565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610cae573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610cdb5760405162461bcd60e51b81526004016108b4906121e5565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d305760405162461bcd60e51b81526004016108b4906121e5565b6001600160a01b03166000908152600860205260409020805460ff19169055565b6000546001600160a01b03163314610d7b5760405162461bcd60e51b81526004016108b4906121e5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610def5760405162461bcd60e51b81526004016108b4906121e5565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610e3b5760405162461bcd60e51b81526004016108b4906121e5565b601155565b6000546001600160a01b03163314610e6a5760405162461bcd60e51b81526004016108b4906121e5565b600e805460ff60b01b1916600160b01b179055565b6000546001600160a01b03163314610ea95760405162461bcd60e51b81526004016108b4906121e5565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600280546109179061221a565b6000546001600160a01b03163314610f045760405162461bcd60e51b81526004016108b4906121e5565b6001600160a01b03166000908152600760205260409020805460ff19169055565b60006109a73384610a4485604051806060016040528060258152602001612404602591393360009081526005602090815260408083206001600160a01b038d1684529091529020549190611b4b565b60006109a73384846114f9565b6000546001600160a01b03163314610fab5760405162461bcd60e51b81526004016108b4906121e5565b600e8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610ff890831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461102d5760405162461bcd60e51b81526004016108b4906121e5565b601055565b6000546001600160a01b0316331461105c5760405162461bcd60e51b81526004016108b4906121e5565b6001600160a01b0381163014156110ca5760405162461bcd60e51b815260206004820152602c60248201527f43616e277420776974686472617720746f6b656e732064657374696e6564206660448201526b6f72206c697175696469747960a01b60648201526084016108b4565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611111573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111359190612255565b116111755760405162461bcd60e51b815260206004820152601060248201526f043616e277420776974686472617720360841b60448201526064016108b4565b806001600160a01b031663a9059cbb6111966000546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156111da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fe9190612255565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611249573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126d919061226e565b5050565b6000546001600160a01b0316331461129b5760405162461bcd60e51b81526004016108b4906121e5565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146112e65760405162461bcd60e51b81526004016108b4906121e5565b6001600160a01b03811661134b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108b4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146113d05760405162461bcd60e51b81526004016108b4906121e5565b600c55565b6001600160a01b0383166114375760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108b4565b6001600160a01b0382166114985760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108b4565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661155d5760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108b4565b6001600160a01b0382166115bf5760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108b4565b6000546001600160a01b0384811691161461162d57600e54600160b01b900460ff1661162d5760405162461bcd60e51b815260206004820152601b60248201527f2054726164696e67206973206e6f7420656e61626c656420796574000000000060448201526064016108b4565b7f000000000000000000000000e46dc554beef86116ddf0a13d05c9de5d216d4c76001600160a01b0316836001600160a01b03161480156116775750600e54600160b81b900460ff165b801561169c57506001600160a01b03821660009081526009602052604090205460ff16155b15611747576001600160a01b0382166000908152600f602052604090205442116117165760405162461bcd60e51b815260206004820152602560248201527f506c65617365207761697420666f7220316d696e206265747765656e2074776f604482015264206275797360d81b60648201526084016108b4565b600e5461172d90600160c01b900460ff16426122a1565b6001600160a01b0383166000908152600f60205260409020555b6001600160a01b03821660009081526007602052604090205460ff166117f5576011546001600160a01b03831660009081526004602052604090205461178d9083611b85565b11156117f55760405162461bcd60e51b815260206004820152603160248201527f4163636f756e742062616c616e636520697320657863656564696e6720746865604482015270081b585e081dd85b1b195d081b1a5b5a5d607a1b60648201526084016108b4565b600061181c6064611816600c54600b5461180f91906122a1565b8590611beb565b90611c6a565b30600090815260046020526040902054601054919250908110801590819061184e5750600e54600160a01b900460ff16155b801561187357506001600160a01b03861660009081526008602052604090205460ff16155b80156118885750600e54600160a81b900460ff165b1561189b57601054915061189b82611cac565b6001600160a01b03861660009081526006602052604090205460019060ff16806118dd57506001600160a01b03861660009081526006602052604090205460ff165b156118e6575060005b6001600160a01b03861660009081526008602052604090205460ff1615801561192857506001600160a01b03871660009081526008602052604090205460ff16155b15611931575060005b8015611a795760006119438686611dc4565b9050611982866040518060600160405280602681526020016123de602691396001600160a01b038b166000908152600460205260409020549190611b4b565b6001600160a01b03808a1660009081526004602052604080822093909355908916815220546119b19082611b85565b6001600160a01b0388166000908152600460205260408082209290925530815220546119dd9086611b85565b3060009081526004602090815260409182902092909255518281526001600160a01b0389811692908b16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a360405185815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350611b42565b611ab6856040518060600160405280602681526020016123de602691396001600160a01b038a166000908152600460205260409020549190611b4b565b6001600160a01b038089166000908152600460205260408082209390935590881681522054611ae59086611b85565b6001600160a01b0380881660008181526004602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b399089815260200190565b60405180910390a35b50505050505050565b60008184841115611b6f5760405162461bcd60e51b81526004016108b49190612044565b506000611b7c84866122b9565b95945050505050565b600080611b9283856122a1565b905083811015611be45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108b4565b9392505050565b600082611bfa575060006109ab565b6000611c0683856122d0565b905082611c1385836122ef565b14611be45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108b4565b6000611be483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e06565b600e805460ff60a01b1916600160a01b17905547611cc982611e34565b6000611cd54783611dc4565b90506000611cf2611ce4611ff4565b600b54611816908590611beb565b90506000611d008383611dc4565b600d546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015611d3b573d6000803e3d6000fd5b50600e546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611d76573d6000803e3d6000fd5b5060408051868152602081018590527f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f8381486910160405180910390a15050600e805460ff60a01b19169055505050565b6000611be483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b4b565b60008183611e275760405162461bcd60e51b81526004016108b49190612044565b506000611b7c84866122ef565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611e6957611e69612311565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ee7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0b9190612327565b81600181518110611f1e57611f1e612311565b60200260200101906001600160a01b031690816001600160a01b031681525050611f69307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846113d5565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611fbe908590600090869030904290600401612344565b600060405180830381600087803b158015611fd857600080fd5b505af1158015611fec573d6000803e3d6000fd5b505050505050565b600061200d600c54600b54611b8590919063ffffffff16565b905090565b6001600160a01b0381168114610cae57600080fd5b60006020828403121561203957600080fd5b8135611be481612012565b600060208083528351808285015260005b8181101561207157858101830151858201604001528201612055565b81811115612083576000604083870101525b50601f01601f1916929092016040019392505050565b600080604083850312156120ac57600080fd5b82356120b781612012565b946020939093013593505050565b6000806000606084860312156120da57600080fd5b83356120e581612012565b925060208401356120f581612012565b929592945050506040919091013590565b8015158114610cae57600080fd5b6000806040838503121561212757600080fd5b823561213281612106565b9150602083013560ff8116811461214857600080fd5b809150509250929050565b60006020828403121561216557600080fd5b5035919050565b6000806040838503121561217f57600080fd5b823561218a81612012565b9150602083013561214881612106565b6000602082840312156121ac57600080fd5b8135611be481612106565b600080604083850312156121ca57600080fd5b82356121d581612012565b9150602083013561214881612012565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061222e57607f821691505b6020821081141561224f57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561226757600080fd5b5051919050565b60006020828403121561228057600080fd5b8151611be481612106565b634e487b7160e01b600052601160045260246000fd5b600082198211156122b4576122b461228b565b500190565b6000828210156122cb576122cb61228b565b500390565b60008160001904831182151516156122ea576122ea61228b565b500290565b60008261230c57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561233957600080fd5b8151611be481612012565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123945784516001600160a01b03168352938301939183019160010161236f565b50506001600160a01b0396909616606085015250505060800152939250505056fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220aad6085be7a0d1891427e6007d9a01ad70054227fae329725a0f31c9e50cb7c064736f6c634300080c0033
Deployed Bytecode Sourcemap
14295:12812:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20707:195;;;;;;;;;;-1:-1:-1;20707:195:0;;;;;:::i;:::-;;:::i;:::-;;15313:28;;;;;;;;;;-1:-1:-1;15313:28:0;;;;-1:-1:-1;;;15313:28:0;;;;;;;;;567:14:1;;560:22;542:41;;530:2;515:18;15313:28:0;;;;;;;;4023:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;18185:158::-;;;;;;;;;;-1:-1:-1;18185:158:0;;;;;:::i;:::-;;:::i;14458:51::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1707:32:1;;;1689:51;;1677:2;1662:18;14458:51:0;1516:230:1;21152:93:0;;;;;;;;;;;;;:::i;17641:97::-;;;;;;;;;;-1:-1:-1;17718:12:0;;17641:97;;;1897:25:1;;;1885:2;1870:18;17641:97:0;1751:177:1;18349:310:0;;;;;;;;;;-1:-1:-1;18349:310:0;;;;;:::i;:::-;;:::i;24498:218::-;;;;;;;;;;-1:-1:-1;24498:218:0;;;;;:::i;:::-;;:::i;4205:83::-;;;;;;;;;;-1:-1:-1;4271:9:0;;;;4205:83;;;3100:4:1;3088:17;;;3070:36;;3058:2;3043:18;4205:83:0;2928:184:1;20298:137:0;;;;;;;;;;-1:-1:-1;20298:137:0;;;;;:::i;:::-;;:::i;18665:207::-;;;;;;;;;;-1:-1:-1;18665:207:0;;;;;:::i;:::-;;:::i;14995:30::-;;;;;;;;;;;;;;;;20057:111;;;;;;;;;;-1:-1:-1;20057:111:0;;;;;:::i;:::-;;:::i;19144:135::-;;;;;;;;;;-1:-1:-1;19144:135:0;;;;;:::i;:::-;;:::i;26559:194::-;;;;;;;;;;;;;:::i;14516:38::-;;;;;;;;;;;;;;;15266:40;;;;;;;;;;-1:-1:-1;15266:40:0;;;;-1:-1:-1;;;15266:40:0;;;;;;20916:129;;;;;;;;;;-1:-1:-1;20916:129:0;;;;;:::i;:::-;;:::i;20585:114::-;;;;;;;;;;-1:-1:-1;20585:114:0;;;;;:::i;:::-;;:::i;15387:37::-;;;;;;;;;;-1:-1:-1;15387:37:0;;;;-1:-1:-1;;;15387:37:0;;;;;;14957:31;;;;;;;;;;;;;;;;17744:116;;;;;;;;;;-1:-1:-1;17744:116:0;;;;;:::i;:::-;-1:-1:-1;;;;;17834:18:0;17810:4;17834:18;;;:9;:18;;;;;;;17744:116;3167:148;;;;;;;;;;;;;:::i;15431:39::-;;;;;;;;;;-1:-1:-1;15431:39:0;;;;-1:-1:-1;;;15431:39:0;;;;;;19557:117;;;;;;;;;;-1:-1:-1;19557:117:0;;;;;:::i;:::-;;:::i;21253:134::-;;;;;;;;;;-1:-1:-1;21253:134:0;;;;;:::i;:::-;;:::i;21053:91::-;;;;;;;;;;;;;:::i;2524:79::-;;;;;;;;;;-1:-1:-1;2562:7:0;2589:6;-1:-1:-1;;;;;2589:6:0;2524:79;;19428:121;;;;;;;;;;-1:-1:-1;19428:121:0;;;;;:::i;:::-;;:::i;4112:87::-;;;;;;;;;;;;;:::i;20443:134::-;;;;;;;;;;-1:-1:-1;20443:134:0;;;;;:::i;:::-;;:::i;18878:258::-;;;;;;;;;;-1:-1:-1;18878:258:0;;;;;:::i;:::-;;:::i;17866:165::-;;;;;;;;;;-1:-1:-1;17866:165:0;;;;;:::i;:::-;;:::i;15610:46::-;;;;;;;;;;;;;;;;16016:21;;;;;;;;;;-1:-1:-1;16016:21:0;;;;-1:-1:-1;;;;;16016:21:0;;;19682:171;;;;;;;;;;-1:-1:-1;19682:171:0;;;;;:::i;:::-;;:::i;19861:190::-;;;;;;;;;;-1:-1:-1;19861:190:0;;;;;:::i;:::-;;:::i;15134:91::-;;;;;;;;;;-1:-1:-1;15134:91:0;;;;-1:-1:-1;;;;;15134:91:0;;;15544:59;;;;;;;;;;;;;;;;18037:142;;;;;;;;;;-1:-1:-1;18037:142:0;;;;;:::i;:::-;-1:-1:-1;;;;;18143:19:0;;;18119:4;18143:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;18037:142;26761:339;;;;;;;;;;-1:-1:-1;26761:339:0;;;;;:::i;:::-;;:::i;15034:93::-;;;;;;;;;;-1:-1:-1;15034:93:0;;;;-1:-1:-1;;;;;15034:93:0;;;20180:110;;;;;;;;;;-1:-1:-1;20180:110:0;;;;;:::i;:::-;;:::i;3470:244::-;;;;;;;;;;-1:-1:-1;3470:244:0;;;;;:::i;:::-;;:::i;19293:127::-;;;;;;;;;;-1:-1:-1;19293:127:0;;;;;:::i;:::-;;:::i;20707:195::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;20780:13:0::1;;::::0;;;:4:::1;:13;::::0;;;;;;;:20;;20796:4:::1;-1:-1:-1::0;;20780:20:0;;::::1;::::0;::::1;::::0;;;20811:24:::1;:33:::0;;;;;:40;;;::::1;::::0;::::1;::::0;;20862:16:::1;:25:::0;;;;;:32;;;;::::1;::::0;;::::1;::::0;;20707:195::o;4023:83::-;4060:13;4093:5;4086:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4023:83;:::o;18185:158::-;18257:4;18274:39;2033:10;18297:7;18306:6;18274:8;:39::i;:::-;-1:-1:-1;18331:4:0;18185:158;;;;;:::o;21152:93::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;21213:16:::1;:24:::0;;-1:-1:-1;;;;21213:24:0::1;::::0;;21152:93::o;18349:310::-;18444:4;18461:36;18471:6;18479:9;18490:6;18461:9;:36::i;:::-;18508:121;18517:6;2033:10;18539:89;18577:6;18539:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18539:19:0;;;;;;:11;:19;;;;;;;;2033:10;18539:33;;;;;;;;;;:37;:89::i;:::-;18508:8;:121::i;:::-;-1:-1:-1;18647:4:0;18349:310;;;;;:::o;24498:218::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;24603:4:::1;24590:9;:17;;;;24582:43;;;::::0;-1:-1:-1;;;24582:43:0;;5968:2:1;24582:43:0::1;::::0;::::1;5950:21:1::0;6007:2;5987:18;;;5980:30;-1:-1:-1;;;6026:18:1;;;6019:43;6079:18;;24582:43:0::1;5766:337:1::0;24582:43:0::1;24636:18;:28:::0;;-1:-1:-1;;;;24675:33:0;-1:-1:-1;;;24636:28:0;::::1;;::::0;;;::::1;-1:-1:-1::0;;;;24675:33:0;;;;;-1:-1:-1;;;24636:28:0::1;24675:33:::0;;;::::1;::::0;;;::::1;;::::0;;24498:218::o;20298:137::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20385:33:0::1;;::::0;;;:24:::1;:33;::::0;;;;:40;;-1:-1:-1;;20385:40:0::1;20421:4;20385:40;::::0;;20298:137::o;18665:207::-;2033:10;18742:4;18791:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18791:34:0;;;;;;;;;;18742:4;;18759:83;;18782:7;;18791:50;;18830:10;18791:38;:50::i;20057:111::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20126:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;20126:34:0::1;20156:4;20126:34;::::0;;20057:111::o;19144:135::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;19237:12:::1;:34:::0;19144:135::o;26559:194::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;26649:1:::1;26625:21;:25;26616:70;;;::::0;-1:-1:-1;;;26616:70:0;;6310:2:1;26616:70:0::1;::::0;::::1;6292:21:1::0;6349:2;6329:18;;;6322:30;6388:33;6368:18;;;6361:61;6439:18;;26616:70:0::1;6108:355:1::0;26616:70:0::1;2562:7:::0;2589:6;;26697:48:::1;::::0;-1:-1:-1;;;;;2589:6:0;;;;26723:21:::1;26697:48:::0;::::1;;;::::0;26723:21;;26697:48;2562:7;26697:48;26723:21;2589:6;26697:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;26559:194::o:0;20916:129::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21004:24:0;;;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;21004:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20916:129::o;20585:114::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20660:13:0::1;20676:5;20660:13:::0;;;:4:::1;:13;::::0;;;;:21;;-1:-1:-1;;20660:21:0::1;::::0;;20585:114::o;3167:148::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;3274:1:::1;3258:6:::0;;3237:40:::1;::::0;-1:-1:-1;;;;;3258:6:0;;::::1;::::0;3237:40:::1;::::0;3274:1;;3237:40:::1;3305:1;3288:19:::0;;-1:-1:-1;;;;;;3288:19:0::1;::::0;;3167:148::o;19557:117::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;19643:14:::1;:23:::0;;-1:-1:-1;;;;;;19643:23:0::1;-1:-1:-1::0;;;;;19643:23:0;;;::::1;::::0;;;::::1;::::0;;19557:117::o;21253:134::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;21345:15:::1;:34:::0;21253:134::o;21053:91::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;21113:16:::1;:23:::0;;-1:-1:-1;;;;21113:23:0::1;-1:-1:-1::0;;;21113:23:0::1;::::0;;21053:91::o;19428:121::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;19516:16:::1;:25:::0;;-1:-1:-1;;;;;;19516:25:0::1;-1:-1:-1::0;;;;;19516:25:0;;;::::1;::::0;;;::::1;::::0;;19428:121::o;4112:87::-;4151:13;4184:7;4177:14;;;;;:::i;20443:134::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20528:33:0::1;20564:5;20528:33:::0;;;:24:::1;:33;::::0;;;;:41;;-1:-1:-1;;20528:41:0::1;::::0;;20443:134::o;18878:258::-;18960:4;18977:129;2033:10;19000:7;19009:96;19048:15;19009:96;;;;;;;;;;;;;;;;;2033:10;19009:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19009:34:0;;;;;;;;;;;;:38;:96::i;17866:165::-;17942:4;17959:42;2033:10;17983:9;17994:6;17959:9;:42::i;19682:171::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;19759:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;19759:32:0::1;-1:-1:-1::0;;;;19759:32:0;;::::1;;::::0;;19807:38:::1;::::0;::::1;::::0;::::1;::::0;19783:8;567:14:1;560:22;542:41;;530:2;515:18;;402:187;19807:38:0::1;;;;;;;;19682:171:::0;:::o;19861:190::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;19981:29:::1;:62:::0;19861:190::o;26761:339::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26843:25:0;::::1;26863:4;26843:25;;26835:82;;;::::0;-1:-1:-1;;;26835:82:0;;6670:2:1;26835:82:0::1;::::0;::::1;6652:21:1::0;6709:2;6689:18;;;6682:30;6748:34;6728:18;;;6721:62;-1:-1:-1;;;6799:18:1;;;6792:42;6851:19;;26835:82:0::1;6468:408:1::0;26835:82:0::1;26936:41;::::0;-1:-1:-1;;;26936:41:0;;26971:4:::1;26936:41;::::0;::::1;1689:51:1::0;26980:1:0::1;::::0;-1:-1:-1;;;;;26936:26:0;::::1;::::0;::::1;::::0;1662:18:1;;26936:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;26928:74;;;::::0;-1:-1:-1;;;26928:74:0;;7272:2:1;26928:74:0::1;::::0;::::1;7254:21:1::0;7311:2;7291:18;;;7284:30;-1:-1:-1;;;7330:18:1;;;7323:46;7386:18;;26928:74:0::1;7070:340:1::0;26928:74:0::1;27022:8;-1:-1:-1::0;;;;;27015:25:0::1;;27041:7;2562::::0;2589:6;-1:-1:-1;;;;;2589:6:0;;2524:79;27041:7:::1;27050:41;::::0;-1:-1:-1;;;27050:41:0;;27085:4:::1;27050:41;::::0;::::1;1689:51:1::0;-1:-1:-1;;;;;27050:26:0;::::1;::::0;::::1;::::0;1662:18:1;;27050:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27015:77;::::0;-1:-1:-1;;;;;;27015:77:0::1;::::0;;;;;;-1:-1:-1;;;;;7607:32:1;;;27015:77:0::1;::::0;::::1;7589:51:1::0;7656:18;;;7649:34;7562:18;;27015:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;26761:339:::0;:::o;20180:110::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20247:27:0::1;20277:5;20247:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;20247:35:0::1;::::0;;20180:110::o;3470:244::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3559:22:0;::::1;3551:73;;;::::0;-1:-1:-1;;;3551:73:0;;8146:2:1;3551:73:0::1;::::0;::::1;8128:21:1::0;8185:2;8165:18;;;8158:30;8224:34;8204:18;;;8197:62;-1:-1:-1;;;8275:18:1;;;8268:36;8321:19;;3551:73:0::1;7944:402:1::0;3551:73:0::1;3661:6;::::0;;3640:38:::1;::::0;-1:-1:-1;;;;;3640:38:0;;::::1;::::0;3661:6;::::1;::::0;3640:38:::1;::::0;::::1;3689:6;:17:::0;;-1:-1:-1;;;;;;3689:17:0::1;-1:-1:-1::0;;;;;3689:17:0;;;::::1;::::0;;;::::1;::::0;;3470:244::o;19293:127::-;2736:6;;-1:-1:-1;;;;;2736:6:0;2033:10;2736:22;2728:68;;;;-1:-1:-1;;;2728:68:0;;;;;;;:::i;:::-;19382:10:::1;:30:::0;19293:127::o;26212:339::-;-1:-1:-1;;;;;26304:20:0;;26296:69;;;;-1:-1:-1;;;26296:69:0;;8553:2:1;26296:69:0;;;8535:21:1;8592:2;8572:18;;;8565:30;8631:34;8611:18;;;8604:62;-1:-1:-1;;;8682:18:1;;;8675:34;8726:19;;26296:69:0;8351:400:1;26296:69:0;-1:-1:-1;;;;;26384:21:0;;26376:68;;;;-1:-1:-1;;;26376:68:0;;8958:2:1;26376:68:0;;;8940:21:1;8997:2;8977:18;;;8970:30;9036:34;9016:18;;;9009:62;-1:-1:-1;;;9087:18:1;;;9080:32;9129:19;;26376:68:0;8756:398:1;26376:68:0;-1:-1:-1;;;;;26457:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;26510:33;;1897:25:1;;;26510:33:0;;1870:18:1;26510:33:0;;;;;;;26212:339;;;:::o;21490:2959::-;-1:-1:-1;;;;;21586:20:0;;21578:70;;;;-1:-1:-1;;;21578:70:0;;9361:2:1;21578:70:0;;;9343:21:1;9400:2;9380:18;;;9373:30;9439:34;9419:18;;;9412:62;-1:-1:-1;;;9490:18:1;;;9483:35;9535:19;;21578:70:0;9159:401:1;21578:70:0;-1:-1:-1;;;;;21667:23:0;;21659:71;;;;-1:-1:-1;;;21659:71:0;;9767:2:1;21659:71:0;;;9749:21:1;9806:2;9786:18;;;9779:30;9845:34;9825:18;;;9818:62;-1:-1:-1;;;9896:18:1;;;9889:33;9939:19;;21659:71:0;9565:399:1;21659:71:0;2562:7;2589:6;-1:-1:-1;;;;;21744:17:0;;;2589:6;;21744:17;21741:90;;21781:16;;-1:-1:-1;;;21781:16:0;;;;21773:56;;;;-1:-1:-1;;;21773:56:0;;10171:2:1;21773:56:0;;;10153:21:1;10210:2;10190:18;;;10183:30;10249:29;10229:18;;;10222:57;10296:18;;21773:56:0;9969:351:1;21773:56:0;21947:13;-1:-1:-1;;;;;21937:23:0;:6;-1:-1:-1;;;;;21937:23:0;;:58;;;;-1:-1:-1;21977:18:0;;-1:-1:-1;;;21977:18:0;;;;21937:58;:103;;;;-1:-1:-1;;;;;;22013:27:0;;;;;;:16;:27;;;;;;;;22012:28;21937:103;21933:308;;;-1:-1:-1;;;;;22065:24:0;;;;;;:13;:24;;;;;;22092:15;-1:-1:-1;22057:91:0;;;;-1:-1:-1;;;22057:91:0;;10527:2:1;22057:91:0;;;10509:21:1;10566:2;10546:18;;;10539:30;10605:34;10585:18;;;10578:62;-1:-1:-1;;;10656:18:1;;;10649:35;10701:19;;22057:91:0;10325:401:1;22057:91:0;22208:21;;22190:39;;-1:-1:-1;;;22208:21:0;;;;22190:15;:39;:::i;:::-;-1:-1:-1;;;;;22163:24:0;;;;;;:13;:24;;;;;:66;21933:308;-1:-1:-1;;;;;22257:35:0;;;;;;:24;:35;;;;;;;;22253:192;;22362:15;;-1:-1:-1;;;;;22326:20:0;;;;;;:9;:20;;;;;;:32;;22351:6;22326:24;:32::i;:::-;:51;;22318:113;;;;-1:-1:-1;;;22318:113:0;;11198:2:1;22318:113:0;;;11180:21:1;11237:2;11217:18;;;11210:30;11276:34;11256:18;;;11249:62;-1:-1:-1;;;11327:18:1;;;11320:47;11384:19;;22318:113:0;10996:413:1;22318:113:0;22458:17;22478:46;22520:3;22479:35;22503:10;;22490:12;;:23;;;;:::i;:::-;22479:6;;:10;:35::i;:::-;22478:41;;:46::i;:::-;22868:4;22819:28;17834:18;;;:9;:18;;;;;;22948:29;;22458:66;;-1:-1:-1;17834:18:0;22924:53;;;;;;;23006;;-1:-1:-1;23043:16:0;;-1:-1:-1;;;23043:16:0;;;;23042:17;23006:53;:83;;;;-1:-1:-1;;;;;;23077:12:0;;;;;;:4;:12;;;;;;;;23076:13;23006:83;:121;;;;-1:-1:-1;23106:21:0;;-1:-1:-1;;;23106:21:0;;;;23006:121;22988:295;;;23177:29;;23154:52;;23235:36;23250:20;23235:14;:36::i;:::-;-1:-1:-1;;;;;23492:26:0;;23365:12;23492:26;;;:18;:26;;;;;;23380:4;;23492:26;;;:59;;-1:-1:-1;;;;;;23522:29:0;;;;;;:18;:29;;;;;;;;23492:59;23489:105;;;-1:-1:-1;23577:5:0;23489:105;-1:-1:-1;;;;;23617:15:0;;;;;;:4;:15;;;;;;;;23616:16;:33;;;;-1:-1:-1;;;;;;23637:12:0;;;;;;:4;:12;;;;;;;;23636:13;23616:33;23613:65;;;-1:-1:-1;23671:5:0;23613:65;23700:7;23697:736;;;23733:17;23753:21;:6;23764:9;23753:10;:21::i;:::-;23733:41;;23809:71;23831:6;23809:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23809:17:0;;;;;;:9;:17;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;23789:17:0;;;;;;;:9;:17;;;;;;:91;;;;23918:20;;;;;;;:35;;23943:9;23918:24;:35::i;:::-;-1:-1:-1;;;;;23895:20:0;;;;;;:9;:20;;;;;;:58;;;;24013:4;23995:24;;;;:39;;24024:9;23995:28;:39::i;:::-;23986:4;23968:24;;;;:9;:24;;;;;;;;;:66;;;;24054:38;1897:25:1;;;-1:-1:-1;;;;;24054:38:0;;;;;;;;;;1870:18:1;24054:38:0;;;;;;;24112:42;;1897:25:1;;;24137:4:0;;-1:-1:-1;;;;;24112:42:0;;;;;1885:2:1;1870:18;24112:42:0;;;;;;;23718:448;23697:736;;;24225:71;24247:6;24225:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24225:17:0;;;;;;:9;:17;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;24205:17:0;;;;;;;:9;:17;;;;;;:91;;;;24334:20;;;;;;;:32;;24359:6;24334:24;:32::i;:::-;-1:-1:-1;;;;;24311:20:0;;;;;;;:9;:20;;;;;;;:55;;;;24386:35;;;;;;;;;;24414:6;1897:25:1;;1885:2;1870:18;;1751:177;24386:35:0;;;;;;;;23697:736;21565:2884;;;;21490:2959;;;:::o;1045:180::-;1125:4;1158:12;1150:6;;;;1142:29;;;;-1:-1:-1;;;1142:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1182:6:0;1191:5;1195:1;1191;:5;:::i;:::-;1182:14;1045:180;-1:-1:-1;;;;;1045:180:0:o;737:169::-;789:4;;815:5;819:1;815;:5;:::i;:::-;806:14;;844:1;839;:6;;831:46;;;;-1:-1:-1;;;831:46:0;;11746:2:1;831:46:0;;;11728:21:1;11785:2;11765:18;;;11758:30;11824:29;11804:18;;;11797:57;11871:18;;831:46:0;11544:351:1;831:46:0;897:1;737:169;-1:-1:-1;;;737:169:0:o;1231:238::-;1283:4;1304:6;1300:47;;-1:-1:-1;1334:1:0;1327:8;;1300:47;1359:6;1368:5;1372:1;1368;:5;:::i;:::-;1359:14;-1:-1:-1;1401:1:0;1392:5;1396:1;1359:14;1392:5;:::i;:::-;:10;1384:56;;;;-1:-1:-1;;;1384:56:0;;12497:2:1;1384:56:0;;;12479:21:1;12536:2;12516:18;;;12509:30;12575:34;12555:18;;;12548:62;-1:-1:-1;;;12626:18:1;;;12619:31;12667:19;;1384:56:0;12295:397:1;1475:123:0;1527:4;1551:39;1555:1;1558;1551:39;;;;;;;;;;;;;;;;;:3;:39::i;24843:764::-;15928:16;:23;;-1:-1:-1;;;;15928:23:0;-1:-1:-1;;;15928:23:0;;;24962:21:::1;25028:38;25045:20:::0;25028:16:::1;:38::i;:::-;25197:18;25218:41;:21;25244:14:::0;25218:25:::1;:41::i;:::-;25197:62;;25272:22;25297:44;25330:10;:8;:10::i;:::-;25312:12;::::0;25297:28:::1;::::0;:10;;:14:::1;:28::i;:44::-;25272:69:::0;-1:-1:-1;25352:20:0::1;25375:30;:10:::0;25272:69;25375:14:::1;:30::i;:::-;25426:16;::::0;25418:50:::1;::::0;25352:53;;-1:-1:-1;;;;;;25426:16:0::1;::::0;25418:50;::::1;;;::::0;25453:14;;25426:16:::1;25418:50:::0;25426:16;25418:50;25453:14;25426:16;25418:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;25487:14:0::1;::::0;25479:46:::1;::::0;-1:-1:-1;;;;;25487:14:0;;::::1;::::0;25479:46;::::1;;;::::0;25512:12;;25487:14:::1;25479:46:::0;25487:14;25479:46;25512:12;25487:14;25479:46;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;25551:48:0::1;::::0;;12871:25:1;;;12927:2;12912:18;;12905:34;;;25551:48:0::1;::::0;12844:18:1;25551:48:0::1;;;;;;;-1:-1:-1::0;;15974:16:0;:24;;-1:-1:-1;;;;15974:24:0;;;-1:-1:-1;;;24843:764:0:o;912:127::-;964:4;988:43;992:1;995;988:43;;;;;;;;;;;;;;;;;:3;:43::i;1604:246::-;1684:4;1783:12;1776:5;1768:28;;;;-1:-1:-1;;;1768:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1807:6:0;1816:5;1820:1;1816;:5;:::i;25615:589::-;25765:16;;;25779:1;25765:16;;;;;;;;25741:21;;25765:16;;;;;;;;;;-1:-1:-1;25765:16:0;25741:40;;25810:4;25792;25797:1;25792:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;25792:23:0;;;-1:-1:-1;;;;;25792:23:0;;;;;25836:15;-1:-1:-1;;;;;25836:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25826:4;25831:1;25826:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;25826:32:0;;;-1:-1:-1;;;;;25826:32:0;;;;;25871:62;25888:4;25903:15;25921:11;25871:8;:62::i;:::-;25972:224;;-1:-1:-1;;;25972:224:0;;-1:-1:-1;;;;;25972:15:0;:66;;;;:224;;26053:11;;26079:1;;26123:4;;26150;;26170:15;;25972:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25670:534;25615:589;:::o;24724:110::-;24766:7;24798:28;24815:10;;24798:12;;:16;;:28;;;;:::i;:::-;24791:35;;24724:110;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:247;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;594:597::-;706:4;735:2;764;753:9;746:21;796:6;790:13;839:6;834:2;823:9;819:18;812:34;864:1;874:140;888:6;885:1;882:13;874:140;;;983:14;;;979:23;;973:30;949:17;;;968:2;945:26;938:66;903:10;;874:140;;;1032:6;1029:1;1026:13;1023:91;;;1102:1;1097:2;1088:6;1077:9;1073:22;1069:31;1062:42;1023:91;-1:-1:-1;1175:2:1;1154:15;-1:-1:-1;;1150:29:1;1135:45;;;;1182:2;1131:54;;594:597;-1:-1:-1;;;594:597:1:o;1196:315::-;1264:6;1272;1325:2;1313:9;1304:7;1300:23;1296:32;1293:52;;;1341:1;1338;1331:12;1293:52;1380:9;1367:23;1399:31;1424:5;1399:31;:::i;:::-;1449:5;1501:2;1486:18;;;;1473:32;;-1:-1:-1;;;1196:315:1:o;1933:456::-;2010:6;2018;2026;2079:2;2067:9;2058:7;2054:23;2050:32;2047:52;;;2095:1;2092;2085:12;2047:52;2134:9;2121:23;2153:31;2178:5;2153:31;:::i;:::-;2203:5;-1:-1:-1;2260:2:1;2245:18;;2232:32;2273:33;2232:32;2273:33;:::i;:::-;1933:456;;2325:7;;-1:-1:-1;;;2379:2:1;2364:18;;;;2351:32;;1933:456::o;2394:118::-;2480:5;2473:13;2466:21;2459:5;2456:32;2446:60;;2502:1;2499;2492:12;2517:406;2580:6;2588;2641:2;2629:9;2620:7;2616:23;2612:32;2609:52;;;2657:1;2654;2647:12;2609:52;2696:9;2683:23;2715:28;2737:5;2715:28;:::i;:::-;2762:5;-1:-1:-1;2819:2:1;2804:18;;2791:32;2867:4;2854:18;;2842:31;;2832:59;;2887:1;2884;2877:12;2832:59;2910:7;2900:17;;;2517:406;;;;;:::o;3117:180::-;3176:6;3229:2;3217:9;3208:7;3204:23;3200:32;3197:52;;;3245:1;3242;3235:12;3197:52;-1:-1:-1;3268:23:1;;3117:180;-1:-1:-1;3117:180:1:o;3510:382::-;3575:6;3583;3636:2;3624:9;3615:7;3611:23;3607:32;3604:52;;;3652:1;3649;3642:12;3604:52;3691:9;3678:23;3710:31;3735:5;3710:31;:::i;:::-;3760:5;-1:-1:-1;3817:2:1;3802:18;;3789:32;3830:30;3789:32;3830:30;:::i;4157:241::-;4213:6;4266:2;4254:9;4245:7;4241:23;4237:32;4234:52;;;4282:1;4279;4272:12;4234:52;4321:9;4308:23;4340:28;4362:5;4340:28;:::i;4627:388::-;4695:6;4703;4756:2;4744:9;4735:7;4731:23;4727:32;4724:52;;;4772:1;4769;4762:12;4724:52;4811:9;4798:23;4830:31;4855:5;4830:31;:::i;:::-;4880:5;-1:-1:-1;4937:2:1;4922:18;;4909:32;4950:33;4909:32;4950:33;:::i;5020:356::-;5222:2;5204:21;;;5241:18;;;5234:30;5300:34;5295:2;5280:18;;5273:62;5367:2;5352:18;;5020:356::o;5381:380::-;5460:1;5456:12;;;;5503;;;5524:61;;5578:4;5570:6;5566:17;5556:27;;5524:61;5631:2;5623:6;5620:14;5600:18;5597:38;5594:161;;;5677:10;5672:3;5668:20;5665:1;5658:31;5712:4;5709:1;5702:15;5740:4;5737:1;5730:15;5594:161;;5381:380;;;:::o;6881:184::-;6951:6;7004:2;6992:9;6983:7;6979:23;6975:32;6972:52;;;7020:1;7017;7010:12;6972:52;-1:-1:-1;7043:16:1;;6881:184;-1:-1:-1;6881:184:1:o;7694:245::-;7761:6;7814:2;7802:9;7793:7;7789:23;7785:32;7782:52;;;7830:1;7827;7820:12;7782:52;7862:9;7856:16;7881:28;7903:5;7881:28;:::i;10731:127::-;10792:10;10787:3;10783:20;10780:1;10773:31;10823:4;10820:1;10813:15;10847:4;10844:1;10837:15;10863:128;10903:3;10934:1;10930:6;10927:1;10924:13;10921:39;;;10940:18;;:::i;:::-;-1:-1:-1;10976:9:1;;10863:128::o;11414:125::-;11454:4;11482:1;11479;11476:8;11473:34;;;11487:18;;:::i;:::-;-1:-1:-1;11524:9:1;;11414:125::o;11900:168::-;11940:7;12006:1;12002;11998:6;11994:14;11991:1;11988:21;11983:1;11976:9;11969:17;11965:45;11962:71;;;12013:18;;:::i;:::-;-1:-1:-1;12053:9:1;;11900:168::o;12073:217::-;12113:1;12139;12129:132;;12183:10;12178:3;12174:20;12171:1;12164:31;12218:4;12215:1;12208:15;12246:4;12243:1;12236:15;12129:132;-1:-1:-1;12275:9:1;;12073:217::o;13082:127::-;13143:10;13138:3;13134:20;13131:1;13124:31;13174:4;13171:1;13164:15;13198:4;13195:1;13188:15;13214:251;13284:6;13337:2;13325:9;13316:7;13312:23;13308:32;13305:52;;;13353:1;13350;13343:12;13305:52;13385:9;13379:16;13404:31;13429:5;13404:31;:::i;13470:980::-;13732:4;13780:3;13769:9;13765:19;13811:6;13800:9;13793:25;13837:2;13875:6;13870:2;13859:9;13855:18;13848:34;13918:3;13913:2;13902:9;13898:18;13891:31;13942:6;13977;13971:13;14008:6;14000;13993:22;14046:3;14035:9;14031:19;14024:26;;14085:2;14077:6;14073:15;14059:29;;14106:1;14116:195;14130:6;14127:1;14124:13;14116:195;;;14195:13;;-1:-1:-1;;;;;14191:39:1;14179:52;;14286:15;;;;14251:12;;;;14227:1;14145:9;14116:195;;;-1:-1:-1;;;;;;;14367:32:1;;;;14362:2;14347:18;;14340:60;-1:-1:-1;;;14431:3:1;14416:19;14409:35;14328:3;13470:980;-1:-1:-1;;;13470:980:1:o
Swarm Source
ipfs://aad6085be7a0d1891427e6007d9a01ad70054227fae329725a0f31c9e50cb7c0
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.