ERC-20
Overview
Max Total Supply
32,768 BONFI
Holders
108
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 0 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Bonfire
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-09-30 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.23; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer( address recipient, uint256 amount ) external returns (bool); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair( address tokenA, address tokenB ) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair( address tokenA, address tokenB ) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn( address to ) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; constructor(string memory name_, string memory symbol_, uint8 decimals_) { _name = name_; _symbol = symbol_; _decimals = decimals_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return _decimals; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } function transfer( address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require( senderBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } contract Bonfire is ERC20, Ownable { IUniswapV2Router02 public immutable uniswapV2Router; address public uniswapV2Pair; address public constant deadAddress = address(0xdead); bool private isSwapping; address private treasuryWallet; uint256 public maxTransactionAmount; uint256 public swapTokensAtAmount; uint256 public maxSwapTokens; uint256 public lpBurnFrequency = 8 hours; uint256 public lastLpBurnTime; bool public limitsInEffect = true; bool public tradingActive = false; uint256 private launchedAt; uint256 public buyTotalFees; uint256 public buyTreasuryFee; uint256 public buyBurnFee; uint256 public sellTotalFees; uint256 public sellTreasuryFee; uint256 public sellBurnFee; uint256 public sellCounter; uint256 public sellAmountCounter; mapping(address => bool) private _isExcludedFromFees; mapping(uint256 => uint256) private swapInBlock; mapping(address => bool) public _isExcludedMaxTransactionAmount; mapping(address => bool) public automatedMarketMakerPairs; event AutoNukeLP(); event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event MarketingWalletUpdated( address indexed newWallet, address indexed oldWallet ); constructor() ERC20("Bonfire", "BONFI", 0) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uint256 _buyTreasuryFee = 16; uint256 _buyBurnFee = 4; uint256 _sellTreasuryFee = 26; uint256 _sellBurnFee = 6; buyTreasuryFee = _buyTreasuryFee; buyBurnFee = _buyBurnFee; buyTotalFees = buyTreasuryFee + buyBurnFee; sellTreasuryFee = _sellTreasuryFee; sellBurnFee = _sellBurnFee; sellTotalFees = sellTreasuryFee + sellBurnFee; uint256 totalSupply = 32768; maxTransactionAmount = 655; // 2% swapTokensAtAmount = 2; maxSwapTokens = 32; treasuryWallet = 0x573A6A98F8D13Ab4e5B8C07CA3df392c7f37314f; excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); _mint(msg.sender, totalSupply); } receive() external payable {} function addLiquidity() external payable onlyOwner { uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair( address(this), uniswapV2Router.WETH() ); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); _addLiquidity(balanceOf(address(this)), msg.value); } function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, owner(), block.timestamp ); } function enableTrading() external onlyOwner { tradingActive = true; launchedAt = block.number; } function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } function wlContract(address _whitelist, bool isWL) public onlyOwner { _isExcludedMaxTransactionAmount[_whitelist] = isWL; _isExcludedFromFees[_whitelist] = isWL; } function excludeFromMaxTransaction( address excludedAddress, bool isExcluded ) public onlyOwner { _isExcludedMaxTransactionAmount[excludedAddress] = isExcluded; } function updateSwapTokensAtAmount( uint256 newAmount ) external onlyOwner returns (bool) { require(newAmount >= 1 && newAmount <= 128); swapTokensAtAmount = newAmount; return true; } function updateMaxSwapTokens( uint256 newAmount ) external onlyOwner returns (bool) { require(newAmount >= 1 && newAmount <= 128); maxSwapTokens = newAmount; return true; } function updateBuyFees( uint256 _treasuryFee, uint256 _burnFee ) external onlyOwner { buyTreasuryFee = _treasuryFee; buyBurnFee = _burnFee; buyTotalFees = buyTreasuryFee + buyBurnFee; require(buyTotalFees <= 20); } function updateSellFees( uint256 _treasuryFee, uint256 _burnFee ) external onlyOwner { sellTreasuryFee = _treasuryFee; sellBurnFee = _burnFee; sellTotalFees = sellTreasuryFee + sellBurnFee; require(sellTotalFees <= 32); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function setAutomatedMarketMakerPair( address pair, bool value ) public onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs" ); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function updateMarketingWallet( address newMarketingWallet ) external onlyOwner { emit MarketingWalletUpdated(newMarketingWallet, treasuryWallet); treasuryWallet = newMarketingWallet; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } uint256 blockNumber = block.number; if (limitsInEffect) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !isSwapping ) { if (!tradingActive) { require( _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active." ); } if ( automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to] ) { require( amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount." ); require( amount + balanceOf(to) <= maxTransactionAmount, "Max wallet exceeded" ); } else if ( automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from] ) { require( amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount." ); } else if (!_isExcludedMaxTransactionAmount[to]) { require( amount + balanceOf(to) <= maxTransactionAmount, "Max wallet exceeded" ); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if ( canSwap && !isSwapping && (swapInBlock[blockNumber] <= 2) && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { isSwapping = true; swapBack(); ++swapInBlock[blockNumber]; isSwapping = false; } if ( !isSwapping && automatedMarketMakerPairs[to] && !_isExcludedFromFees[from] ) { autoBurnLiquidityPairTokens(); } bool takeFee = !isSwapping; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; uint256 toTreasury = 0; uint256 toBurn = 0; // only take fees on buys/sells, do not take on wallet transfers // cause there are no decimals, fees will be taken only on txs of 50 tokens and more if (takeFee) { // on sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { fees = (amount * sellTotalFees) / 100; toBurn = (fees * sellBurnFee) / sellTotalFees; toTreasury = fees - toBurn; // on every 2/4/8/16 sells, if LP balance is > 2048/1024/512/256, take 1 token as burn tax no matter the amount being sold // will be triggered only if burn amount from fees is 0 for the current trade and the trade is taxable sellCounter++; uint256 lpBalance = balanceOf(uniswapV2Pair); if (toBurn == 0) { if ( (lpBalance > 2048 && sellCounter >= 2) || (lpBalance > 1024 && sellCounter >= 4) || (lpBalance > 512 && sellCounter >= 8) || (lpBalance > 256 && sellCounter >= 16) ) { sellCounter = 0; toBurn = 1; fees += 1; } } sellAmountCounter += amount; } // on buy else if (buyTotalFees > 0 && automatedMarketMakerPairs[from]) { fees = (amount * buyTotalFees) / 100; toBurn = (fees * buyBurnFee) / buyTotalFees; toTreasury = fees - toBurn; } if (toTreasury > 0) { super._transfer(from, address(this), toTreasury); } if (toBurn > 0) { super._transfer(from, address(0xdead), toBurn); } amount -= fees; } super._transfer(from, to, amount); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); bool success; if (contractBalance == 0) { return; } if (contractBalance > maxSwapTokens) { contractBalance = maxSwapTokens; } uint256 amountToSwapForETH = contractBalance; swapTokensForEth(amountToSwapForETH); (success, ) = address(treasuryWallet).call{ value: address(this).balance }(""); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function autoBurnLiquidityPairTokens() internal { uint256 liquidityPairBalance = balanceOf(uniswapV2Pair); if (liquidityPairBalance > 256) { if (sellAmountCounter < 1024) { if (block.timestamp < lastLpBurnTime + lpBurnFrequency) { return; } else { lastLpBurnTime = block.timestamp; } } else { sellAmountCounter = 0; } super._transfer(uniswapV2Pair, address(0xdead), 1); IUniswapV2Pair pair = IUniswapV2Pair(uniswapV2Pair); pair.sync(); emit AutoNukeLP(); } } }
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":[],"name":"AutoNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"MarketingWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTreasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"excludedAddress","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellAmountCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTreasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treasuryFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateMaxSwapTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treasuryFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_whitelist","type":"address"},{"internalType":"bool","name":"isWL","type":"bool"}],"name":"wlContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a0604052617080600b55600d805461ffff1916600117905534801562000024575f80fd5b5060405180604001604052806007815260200166426f6e6669726560c81b81525060405180604001604052806005815260200164424f4e464960d81b8152505f8260039081620000759190620004ef565b506004620000848382620004ef565b506005805460ff191660ff9290921691909117905550620000ae9050620000a83390565b620001e6565b737a250d5630b4cf539739df2c5dacb4c659f2488d620000d08160016200023f565b6001600160a01b038116608052601080805560046011819055601a6006620000f98385620005bb565b600f5560138290556014819055620001128183620005bb565b60125561028f60085560026009556020600a55600780546001600160a01b03191673573a6a98f8d13ab4e5b8c07ca3df392c7f37314f179055618000620001726200016a60055461010090046001600160a01b031690565b6001620002bd565b6200017f306001620002bd565b6200018e61dead6001620002bd565b620001b2620001aa60055461010090046001600160a01b031690565b60016200023f565b620001bf3060016200023f565b620001ce61dead60016200023f565b620001da33826200036b565b505050505050620005e1565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6005546001600160a01b03610100909104163314620002935760405162461bcd60e51b815260206004820181905260248201525f8051602062002a8b83398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152601960205260409020805460ff1916911515919091179055565b6005546001600160a01b036101009091041633146200030d5760405162461bcd60e51b815260206004820181905260248201525f8051602062002a8b83398151915260448201526064016200028a565b6001600160a01b0382165f81815260176020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620003c35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200028a565b8060025f828254620003d69190620005bb565b90915550506001600160a01b0382165f908152602081905260408120805483929062000404908490620005bb565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200047b57607f821691505b6020821081036200049a57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200044d57805f5260205f20601f840160051c81016020851015620004c75750805b601f840160051c820191505b81811015620004e8575f8155600101620004d3565b5050505050565b81516001600160401b038111156200050b576200050b62000452565b62000523816200051c845462000466565b84620004a0565b602080601f83116001811462000559575f8415620005415750858301515b5f19600386901b1c1916600185901b178555620005b3565b5f85815260208120601f198616915b82811015620005895788860151825594840194600190910190840162000568565b5085821015620005a757878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b80820180821115620005db57634e487b7160e01b5f52601160045260245ffd5b92915050565b6080516124606200062b5f395f818161033c01528181610f1901528181610fa801528181611ad201528181611af901528181611f0101528181611fb80152611ff401526124605ff3fe608060405260043610610278575f3560e01c80638a8c523c1161014a578063b431dd28116100be578063d85ba06311610078578063d85ba06314610725578063dd62ed3e1461073a578063e2f456051461077e578063e71dc3f514610793578063e8078d94146107a8578063f2fde38b146107b0575f80fd5b8063b431dd2814610667578063b62496f514610686578063bbc0c742146106b4578063c0246668146106d2578063c8c8ebe4146106f1578063d257b34f14610706575f80fd5b8063a457c2d71161010f578063a457c2d7146105cb578063a4c82a00146105ea578063a4d0047d146105ff578063a9059cbb14610614578063aacebbe314610633578063adb873bd14610652575f80fd5b80638a8c523c146105435780638da5cb5b1461055757806395d89b41146105795780639a7a23d61461058d5780639b66731b146105ac575f80fd5b806339509351116101ec5780636b2fb124116101a65780636b2fb124146104b357806370a08231146104c8578063715018a6146104e7578063751039fc146104fb5780637571336a1461050f57806378d527221461052e575f80fd5b8063395093511461041357806349bd5a5e146104325780634a62bb65146104515780635c068a8c1461046a57806366ca9b831461047f5780636a486a8e1461049e575f80fd5b806318160ddd1161023d57806318160ddd1461037657806323b872dd1461039457806327c8f835146103b35780632c3e486c146103c8578063313ce567146103dd57806336a1efe4146103fe575f80fd5b806302dbd8f81461028357806306fdde03146102a4578063095ea7b3146102ce57806310d5de53146102fd5780631694505e1461032b575f80fd5b3661027f57005b5f80fd5b34801561028e575f80fd5b506102a261029d36600461205a565b6107cf565b005b3480156102af575f80fd5b506102b8610831565b6040516102c5919061207a565b60405180910390f35b3480156102d9575f80fd5b506102ed6102e83660046120da565b6108c1565b60405190151581526020016102c5565b348015610308575f80fd5b506102ed610317366004612104565b60196020525f908152604090205460ff1681565b348015610336575f80fd5b5061035e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102c5565b348015610381575f80fd5b506002545b6040519081526020016102c5565b34801561039f575f80fd5b506102ed6103ae366004612126565b6108d7565b3480156103be575f80fd5b5061035e61dead81565b3480156103d3575f80fd5b50610386600b5481565b3480156103e8575f80fd5b5060055460405160ff90911681526020016102c5565b348015610409575f80fd5b50610386600a5481565b34801561041e575f80fd5b506102ed61042d3660046120da565b61097f565b34801561043d575f80fd5b5060065461035e906001600160a01b031681565b34801561045c575f80fd5b50600d546102ed9060ff1681565b348015610475575f80fd5b5061038660105481565b34801561048a575f80fd5b506102a261049936600461205a565b6109ba565b3480156104a9575f80fd5b5061038660125481565b3480156104be575f80fd5b5061038660135481565b3480156104d3575f80fd5b506103866104e2366004612104565b610a0f565b3480156104f2575f80fd5b506102a2610a29565b348015610506575f80fd5b506102ed610a64565b34801561051a575f80fd5b506102a2610529366004612164565b610aa6565b348015610539575f80fd5b5061038660165481565b34801561054e575f80fd5b506102a2610b00565b348015610562575f80fd5b5060055461010090046001600160a01b031661035e565b348015610584575f80fd5b506102b8610b45565b348015610598575f80fd5b506102a26105a7366004612164565b610b54565b3480156105b7575f80fd5b506102ed6105c636600461219f565b610c12565b3480156105d6575f80fd5b506102ed6105e53660046120da565b610c67565b3480156105f5575f80fd5b50610386600c5481565b34801561060a575f80fd5b5061038660155481565b34801561061f575f80fd5b506102ed61062e3660046120da565b610cff565b34801561063e575f80fd5b506102a261064d366004612104565b610d0b565b34801561065d575f80fd5b5061038660145481565b348015610672575f80fd5b506102a2610681366004612164565b610d97565b348015610691575f80fd5b506102ed6106a0366004612104565b601a6020525f908152604090205460ff1681565b3480156106bf575f80fd5b50600d546102ed90610100900460ff1681565b3480156106dd575f80fd5b506102a26106ec366004612164565b610e04565b3480156106fc575f80fd5b5061038660085481565b348015610711575f80fd5b506102ed61072036600461219f565b610e92565b348015610730575f80fd5b50610386600f5481565b348015610745575f80fd5b506103866107543660046121b6565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610789575f80fd5b5061038660095481565b34801561079e575f80fd5b5061038660115481565b6102a2610ee7565b3480156107bb575f80fd5b506102a26107ca366004612104565b6110e7565b6005546001600160a01b036101009091041633146108085760405162461bcd60e51b81526004016107ff906121e2565b60405180910390fd5b6013829055601481905561081c818361222b565b60128190556020101561082d575f80fd5b5050565b6060600380546108409061223e565b80601f016020809104026020016040519081016040528092919081815260200182805461086c9061223e565b80156108b75780601f1061088e576101008083540402835291602001916108b7565b820191905f5260205f20905b81548152906001019060200180831161089a57829003601f168201915b5050505050905090565b5f6108cd338484611188565b5060015b92915050565b5f6108e38484846112ab565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156109675760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107ff565b6109748533858403611188565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916108cd9185906109b590869061222b565b611188565b6005546001600160a01b036101009091041633146109ea5760405162461bcd60e51b81526004016107ff906121e2565b601082905560118190556109fe818361222b565b600f8190556014101561082d575f80fd5b6001600160a01b03165f9081526020819052604090205490565b6005546001600160a01b03610100909104163314610a595760405162461bcd60e51b81526004016107ff906121e2565b610a625f611a20565b565b6005545f906001600160a01b03610100909104163314610a965760405162461bcd60e51b81526004016107ff906121e2565b50600d805460ff19169055600190565b6005546001600160a01b03610100909104163314610ad65760405162461bcd60e51b81526004016107ff906121e2565b6001600160a01b03919091165f908152601960205260409020805460ff1916911515919091179055565b6005546001600160a01b03610100909104163314610b305760405162461bcd60e51b81526004016107ff906121e2565b600d805461ff00191661010017905543600e55565b6060600480546108409061223e565b6005546001600160a01b03610100909104163314610b845760405162461bcd60e51b81526004016107ff906121e2565b6006546001600160a01b0390811690831603610c085760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016107ff565b61082d8282611a79565b6005545f906001600160a01b03610100909104163314610c445760405162461bcd60e51b81526004016107ff906121e2565b60018210158015610c56575060808211155b610c5e575f80fd5b50600a55600190565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610ce85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107ff565b610cf53385858403611188565b5060019392505050565b5f6108cd3384846112ab565b6005546001600160a01b03610100909104163314610d3b5760405162461bcd60e51b81526004016107ff906121e2565b6007546040516001600160a01b03918216918316907f8616c7a330e3cf61290821331585511f1e2778171e2b005fb5ec60cfe874dc67905f90a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03610100909104163314610dc75760405162461bcd60e51b81526004016107ff906121e2565b6001600160a01b039091165f908152601960209081526040808320805494151560ff19958616811790915560179092529091208054909216179055565b6005546001600160a01b03610100909104163314610e345760405162461bcd60e51b81526004016107ff906121e2565b6001600160a01b0382165f81815260176020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005545f906001600160a01b03610100909104163314610ec45760405162461bcd60e51b81526004016107ff906121e2565b60018210158015610ed6575060808211155b610ede575f80fd5b50600955600190565b6005546001600160a01b03610100909104163314610f175760405162461bcd60e51b81526004016107ff906121e2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f979190612276565b6001600160a01b031663c9c65396307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611002573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110269190612276565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015611070573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110949190612276565b600680546001600160a01b0319166001600160a01b039290921691821790556110be906001610aa6565b6006546110d5906001600160a01b03166001611a79565b610a626110e130610a0f565b34611acc565b6005546001600160a01b036101009091041633146111175760405162461bcd60e51b81526004016107ff906121e2565b6001600160a01b03811661117c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ff565b61118581611a20565b50565b6001600160a01b0383166111ea5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ff565b6001600160a01b03821661124b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ff565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112d15760405162461bcd60e51b81526004016107ff90612291565b6001600160a01b0382166112f75760405162461bcd60e51b81526004016107ff906122d6565b805f0361130e5761130983835f611bd5565b505050565b600d54439060ff1615611669576005546001600160a01b03858116610100909204161480159061135157506005546001600160a01b038481166101009092041614155b801561136557506001600160a01b03831615155b801561137c57506001600160a01b03831661dead14155b80156113925750600654600160a01b900460ff16155b1561166957600d54610100900460ff16611428576001600160a01b0384165f9081526017602052604090205460ff16806113e357506001600160a01b0383165f9081526017602052604090205460ff165b6114285760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016107ff565b6001600160a01b0384165f908152601a602052604090205460ff16801561146757506001600160a01b0383165f9081526019602052604090205460ff16155b1561153b576008548211156114dc5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016107ff565b6008546114e884610a0f565b6114f2908461222b565b11156115365760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107ff565b611669565b6001600160a01b0383165f908152601a602052604090205460ff16801561157a57506001600160a01b0384165f9081526019602052604090205460ff16155b156115f0576008548211156115365760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016107ff565b6001600160a01b0383165f9081526019602052604090205460ff166116695760085461161b84610a0f565b611625908461222b565b11156116695760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107ff565b5f61167330610a0f565b600954909150811080159081906116945750600654600160a01b900460ff16155b80156116ae57505f83815260186020526040902054600210155b80156116d257506001600160a01b0386165f908152601a602052604090205460ff16155b80156116f657506001600160a01b0386165f9081526017602052604090205460ff16155b801561171a57506001600160a01b0385165f9081526017602052604090205460ff16155b15611767576006805460ff60a01b1916600160a01b17905561173a611d28565b5f838152601860205260408120805490919061175590612319565b909155506006805460ff60a01b191690555b600654600160a01b900460ff1615801561179857506001600160a01b0385165f908152601a602052604090205460ff165b80156117bc57506001600160a01b0386165f9081526017602052604090205460ff16155b156117c9576117c9611db1565b6006546001600160a01b0387165f9081526017602052604090205460ff600160a01b90920482161591168061181557506001600160a01b0386165f9081526017602052604090205460ff165b1561181d57505f5b5f805f8315611a09576001600160a01b0389165f908152601a602052604090205460ff16801561184e57505f601254115b15611965576064601254896118639190612331565b61186d9190612348565b9250601254601454846118809190612331565b61188a9190612348565b90506118968184612367565b601580549193505f6118a783612319565b90915550506006545f906118c3906001600160a01b0316610a0f565b9050815f0361194857610800811180156118e05750600260155410155b806118fa5750610400811180156118fa5750600460155410155b806119145750610200811180156119145750600860155410155b8061192e57506101008111801561192e5750601060155410155b15611948575f60155560019150611945828561222b565b93505b8860165f828254611959919061222b565b909155506119d8915050565b5f600f5411801561198d57506001600160a01b038a165f908152601a602052604090205460ff165b156119d8576064600f54896119a29190612331565b6119ac9190612348565b9250600f54601154846119bf9190612331565b6119c99190612348565b90506119d58184612367565b91505b81156119e9576119e98a3084611bd5565b80156119fc576119fc8a61dead83611bd5565b611a068389612367565b97505b611a148a8a8a611bd5565b50505050505050505050565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f818152601a6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b611af7307f000000000000000000000000000000000000000000000000000000000000000084611188565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7198230855f80611b436005546001600160a01b036101009091041690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611ba9573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611bce919061237a565b5050505050565b6001600160a01b038316611bfb5760405162461bcd60e51b81526004016107ff90612291565b6001600160a01b038216611c215760405162461bcd60e51b81526004016107ff906122d6565b6001600160a01b0383165f9081526020819052604090205481811015611c985760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107ff565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611cce90849061222b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d1a91815260200190565b60405180910390a350505050565b5f611d3230610a0f565b90505f815f03611d40575050565b600a54821115611d5057600a5491505b81611d5a81611eac565b6007546040516001600160a01b039091169047905f81818185875af1925050503d805f8114611da4576040519150601f19603f3d011682016040523d82523d5f602084013e611da9565b606091505b505050505050565b6006545f90611dc8906001600160a01b0316610a0f565b9050610100811115611185576104006016541015611e0357600b54600c54611df0919061222b565b421015611dfa5750565b42600c55611e08565b5f6016555b600654611e22906001600160a01b031661dead6001611bd5565b6006546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae9916004808301925f92919082900301818387803b158015611e6a575f80fd5b505af1158015611e7c573d5f803e3d5ffd5b50506040517f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d92505f9150a15050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611edf57611edf6123a5565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f7f9190612276565b81600181518110611f9257611f926123a5565b60200260200101906001600160a01b031690816001600160a01b031681525050611fdd307f000000000000000000000000000000000000000000000000000000000000000084611188565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906120319085905f908690309042906004016123b9565b5f604051808303815f87803b158015612048575f80fd5b505af1158015611da9573d5f803e3d5ffd5b5f806040838503121561206b575f80fd5b50508035926020909101359150565b5f602080835283518060208501525f5b818110156120a65785810183015185820160400152820161208a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611185575f80fd5b5f80604083850312156120eb575f80fd5b82356120f6816120c6565b946020939093013593505050565b5f60208284031215612114575f80fd5b813561211f816120c6565b9392505050565b5f805f60608486031215612138575f80fd5b8335612143816120c6565b92506020840135612153816120c6565b929592945050506040919091013590565b5f8060408385031215612175575f80fd5b8235612180816120c6565b915060208301358015158114612194575f80fd5b809150509250929050565b5f602082840312156121af575f80fd5b5035919050565b5f80604083850312156121c7575f80fd5b82356121d2816120c6565b91506020830135612194816120c6565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156108d1576108d1612217565b600181811c9082168061225257607f821691505b60208210810361227057634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215612286575f80fd5b815161211f816120c6565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b5f6001820161232a5761232a612217565b5060010190565b80820281158282048414176108d1576108d1612217565b5f8261236257634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156108d1576108d1612217565b5f805f6060848603121561238c575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156124095784516001600160a01b0316835293830193918301916001016123e4565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220b79a5f7a20b2b3ad049d21eaec1eaa9931585119edc03c14d99a125db973e69364736f6c634300081700334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
Deployed Bytecode
0x608060405260043610610278575f3560e01c80638a8c523c1161014a578063b431dd28116100be578063d85ba06311610078578063d85ba06314610725578063dd62ed3e1461073a578063e2f456051461077e578063e71dc3f514610793578063e8078d94146107a8578063f2fde38b146107b0575f80fd5b8063b431dd2814610667578063b62496f514610686578063bbc0c742146106b4578063c0246668146106d2578063c8c8ebe4146106f1578063d257b34f14610706575f80fd5b8063a457c2d71161010f578063a457c2d7146105cb578063a4c82a00146105ea578063a4d0047d146105ff578063a9059cbb14610614578063aacebbe314610633578063adb873bd14610652575f80fd5b80638a8c523c146105435780638da5cb5b1461055757806395d89b41146105795780639a7a23d61461058d5780639b66731b146105ac575f80fd5b806339509351116101ec5780636b2fb124116101a65780636b2fb124146104b357806370a08231146104c8578063715018a6146104e7578063751039fc146104fb5780637571336a1461050f57806378d527221461052e575f80fd5b8063395093511461041357806349bd5a5e146104325780634a62bb65146104515780635c068a8c1461046a57806366ca9b831461047f5780636a486a8e1461049e575f80fd5b806318160ddd1161023d57806318160ddd1461037657806323b872dd1461039457806327c8f835146103b35780632c3e486c146103c8578063313ce567146103dd57806336a1efe4146103fe575f80fd5b806302dbd8f81461028357806306fdde03146102a4578063095ea7b3146102ce57806310d5de53146102fd5780631694505e1461032b575f80fd5b3661027f57005b5f80fd5b34801561028e575f80fd5b506102a261029d36600461205a565b6107cf565b005b3480156102af575f80fd5b506102b8610831565b6040516102c5919061207a565b60405180910390f35b3480156102d9575f80fd5b506102ed6102e83660046120da565b6108c1565b60405190151581526020016102c5565b348015610308575f80fd5b506102ed610317366004612104565b60196020525f908152604090205460ff1681565b348015610336575f80fd5b5061035e7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102c5565b348015610381575f80fd5b506002545b6040519081526020016102c5565b34801561039f575f80fd5b506102ed6103ae366004612126565b6108d7565b3480156103be575f80fd5b5061035e61dead81565b3480156103d3575f80fd5b50610386600b5481565b3480156103e8575f80fd5b5060055460405160ff90911681526020016102c5565b348015610409575f80fd5b50610386600a5481565b34801561041e575f80fd5b506102ed61042d3660046120da565b61097f565b34801561043d575f80fd5b5060065461035e906001600160a01b031681565b34801561045c575f80fd5b50600d546102ed9060ff1681565b348015610475575f80fd5b5061038660105481565b34801561048a575f80fd5b506102a261049936600461205a565b6109ba565b3480156104a9575f80fd5b5061038660125481565b3480156104be575f80fd5b5061038660135481565b3480156104d3575f80fd5b506103866104e2366004612104565b610a0f565b3480156104f2575f80fd5b506102a2610a29565b348015610506575f80fd5b506102ed610a64565b34801561051a575f80fd5b506102a2610529366004612164565b610aa6565b348015610539575f80fd5b5061038660165481565b34801561054e575f80fd5b506102a2610b00565b348015610562575f80fd5b5060055461010090046001600160a01b031661035e565b348015610584575f80fd5b506102b8610b45565b348015610598575f80fd5b506102a26105a7366004612164565b610b54565b3480156105b7575f80fd5b506102ed6105c636600461219f565b610c12565b3480156105d6575f80fd5b506102ed6105e53660046120da565b610c67565b3480156105f5575f80fd5b50610386600c5481565b34801561060a575f80fd5b5061038660155481565b34801561061f575f80fd5b506102ed61062e3660046120da565b610cff565b34801561063e575f80fd5b506102a261064d366004612104565b610d0b565b34801561065d575f80fd5b5061038660145481565b348015610672575f80fd5b506102a2610681366004612164565b610d97565b348015610691575f80fd5b506102ed6106a0366004612104565b601a6020525f908152604090205460ff1681565b3480156106bf575f80fd5b50600d546102ed90610100900460ff1681565b3480156106dd575f80fd5b506102a26106ec366004612164565b610e04565b3480156106fc575f80fd5b5061038660085481565b348015610711575f80fd5b506102ed61072036600461219f565b610e92565b348015610730575f80fd5b50610386600f5481565b348015610745575f80fd5b506103866107543660046121b6565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610789575f80fd5b5061038660095481565b34801561079e575f80fd5b5061038660115481565b6102a2610ee7565b3480156107bb575f80fd5b506102a26107ca366004612104565b6110e7565b6005546001600160a01b036101009091041633146108085760405162461bcd60e51b81526004016107ff906121e2565b60405180910390fd5b6013829055601481905561081c818361222b565b60128190556020101561082d575f80fd5b5050565b6060600380546108409061223e565b80601f016020809104026020016040519081016040528092919081815260200182805461086c9061223e565b80156108b75780601f1061088e576101008083540402835291602001916108b7565b820191905f5260205f20905b81548152906001019060200180831161089a57829003601f168201915b5050505050905090565b5f6108cd338484611188565b5060015b92915050565b5f6108e38484846112ab565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156109675760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107ff565b6109748533858403611188565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916108cd9185906109b590869061222b565b611188565b6005546001600160a01b036101009091041633146109ea5760405162461bcd60e51b81526004016107ff906121e2565b601082905560118190556109fe818361222b565b600f8190556014101561082d575f80fd5b6001600160a01b03165f9081526020819052604090205490565b6005546001600160a01b03610100909104163314610a595760405162461bcd60e51b81526004016107ff906121e2565b610a625f611a20565b565b6005545f906001600160a01b03610100909104163314610a965760405162461bcd60e51b81526004016107ff906121e2565b50600d805460ff19169055600190565b6005546001600160a01b03610100909104163314610ad65760405162461bcd60e51b81526004016107ff906121e2565b6001600160a01b03919091165f908152601960205260409020805460ff1916911515919091179055565b6005546001600160a01b03610100909104163314610b305760405162461bcd60e51b81526004016107ff906121e2565b600d805461ff00191661010017905543600e55565b6060600480546108409061223e565b6005546001600160a01b03610100909104163314610b845760405162461bcd60e51b81526004016107ff906121e2565b6006546001600160a01b0390811690831603610c085760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016107ff565b61082d8282611a79565b6005545f906001600160a01b03610100909104163314610c445760405162461bcd60e51b81526004016107ff906121e2565b60018210158015610c56575060808211155b610c5e575f80fd5b50600a55600190565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610ce85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107ff565b610cf53385858403611188565b5060019392505050565b5f6108cd3384846112ab565b6005546001600160a01b03610100909104163314610d3b5760405162461bcd60e51b81526004016107ff906121e2565b6007546040516001600160a01b03918216918316907f8616c7a330e3cf61290821331585511f1e2778171e2b005fb5ec60cfe874dc67905f90a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03610100909104163314610dc75760405162461bcd60e51b81526004016107ff906121e2565b6001600160a01b039091165f908152601960209081526040808320805494151560ff19958616811790915560179092529091208054909216179055565b6005546001600160a01b03610100909104163314610e345760405162461bcd60e51b81526004016107ff906121e2565b6001600160a01b0382165f81815260176020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005545f906001600160a01b03610100909104163314610ec45760405162461bcd60e51b81526004016107ff906121e2565b60018210158015610ed6575060808211155b610ede575f80fd5b50600955600190565b6005546001600160a01b03610100909104163314610f175760405162461bcd60e51b81526004016107ff906121e2565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f979190612276565b6001600160a01b031663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611002573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110269190612276565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015611070573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110949190612276565b600680546001600160a01b0319166001600160a01b039290921691821790556110be906001610aa6565b6006546110d5906001600160a01b03166001611a79565b610a626110e130610a0f565b34611acc565b6005546001600160a01b036101009091041633146111175760405162461bcd60e51b81526004016107ff906121e2565b6001600160a01b03811661117c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ff565b61118581611a20565b50565b6001600160a01b0383166111ea5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ff565b6001600160a01b03821661124b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ff565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112d15760405162461bcd60e51b81526004016107ff90612291565b6001600160a01b0382166112f75760405162461bcd60e51b81526004016107ff906122d6565b805f0361130e5761130983835f611bd5565b505050565b600d54439060ff1615611669576005546001600160a01b03858116610100909204161480159061135157506005546001600160a01b038481166101009092041614155b801561136557506001600160a01b03831615155b801561137c57506001600160a01b03831661dead14155b80156113925750600654600160a01b900460ff16155b1561166957600d54610100900460ff16611428576001600160a01b0384165f9081526017602052604090205460ff16806113e357506001600160a01b0383165f9081526017602052604090205460ff165b6114285760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016107ff565b6001600160a01b0384165f908152601a602052604090205460ff16801561146757506001600160a01b0383165f9081526019602052604090205460ff16155b1561153b576008548211156114dc5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016107ff565b6008546114e884610a0f565b6114f2908461222b565b11156115365760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107ff565b611669565b6001600160a01b0383165f908152601a602052604090205460ff16801561157a57506001600160a01b0384165f9081526019602052604090205460ff16155b156115f0576008548211156115365760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016107ff565b6001600160a01b0383165f9081526019602052604090205460ff166116695760085461161b84610a0f565b611625908461222b565b11156116695760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107ff565b5f61167330610a0f565b600954909150811080159081906116945750600654600160a01b900460ff16155b80156116ae57505f83815260186020526040902054600210155b80156116d257506001600160a01b0386165f908152601a602052604090205460ff16155b80156116f657506001600160a01b0386165f9081526017602052604090205460ff16155b801561171a57506001600160a01b0385165f9081526017602052604090205460ff16155b15611767576006805460ff60a01b1916600160a01b17905561173a611d28565b5f838152601860205260408120805490919061175590612319565b909155506006805460ff60a01b191690555b600654600160a01b900460ff1615801561179857506001600160a01b0385165f908152601a602052604090205460ff165b80156117bc57506001600160a01b0386165f9081526017602052604090205460ff16155b156117c9576117c9611db1565b6006546001600160a01b0387165f9081526017602052604090205460ff600160a01b90920482161591168061181557506001600160a01b0386165f9081526017602052604090205460ff165b1561181d57505f5b5f805f8315611a09576001600160a01b0389165f908152601a602052604090205460ff16801561184e57505f601254115b15611965576064601254896118639190612331565b61186d9190612348565b9250601254601454846118809190612331565b61188a9190612348565b90506118968184612367565b601580549193505f6118a783612319565b90915550506006545f906118c3906001600160a01b0316610a0f565b9050815f0361194857610800811180156118e05750600260155410155b806118fa5750610400811180156118fa5750600460155410155b806119145750610200811180156119145750600860155410155b8061192e57506101008111801561192e5750601060155410155b15611948575f60155560019150611945828561222b565b93505b8860165f828254611959919061222b565b909155506119d8915050565b5f600f5411801561198d57506001600160a01b038a165f908152601a602052604090205460ff165b156119d8576064600f54896119a29190612331565b6119ac9190612348565b9250600f54601154846119bf9190612331565b6119c99190612348565b90506119d58184612367565b91505b81156119e9576119e98a3084611bd5565b80156119fc576119fc8a61dead83611bd5565b611a068389612367565b97505b611a148a8a8a611bd5565b50505050505050505050565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f818152601a6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b611af7307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611188565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d7198230855f80611b436005546001600160a01b036101009091041690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611ba9573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611bce919061237a565b5050505050565b6001600160a01b038316611bfb5760405162461bcd60e51b81526004016107ff90612291565b6001600160a01b038216611c215760405162461bcd60e51b81526004016107ff906122d6565b6001600160a01b0383165f9081526020819052604090205481811015611c985760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107ff565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611cce90849061222b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d1a91815260200190565b60405180910390a350505050565b5f611d3230610a0f565b90505f815f03611d40575050565b600a54821115611d5057600a5491505b81611d5a81611eac565b6007546040516001600160a01b039091169047905f81818185875af1925050503d805f8114611da4576040519150601f19603f3d011682016040523d82523d5f602084013e611da9565b606091505b505050505050565b6006545f90611dc8906001600160a01b0316610a0f565b9050610100811115611185576104006016541015611e0357600b54600c54611df0919061222b565b421015611dfa5750565b42600c55611e08565b5f6016555b600654611e22906001600160a01b031661dead6001611bd5565b6006546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae9916004808301925f92919082900301818387803b158015611e6a575f80fd5b505af1158015611e7c573d5f803e3d5ffd5b50506040517f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d92505f9150a15050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611edf57611edf6123a5565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f7f9190612276565b81600181518110611f9257611f926123a5565b60200260200101906001600160a01b031690816001600160a01b031681525050611fdd307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611188565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906120319085905f908690309042906004016123b9565b5f604051808303815f87803b158015612048575f80fd5b505af1158015611da9573d5f803e3d5ffd5b5f806040838503121561206b575f80fd5b50508035926020909101359150565b5f602080835283518060208501525f5b818110156120a65785810183015185820160400152820161208a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611185575f80fd5b5f80604083850312156120eb575f80fd5b82356120f6816120c6565b946020939093013593505050565b5f60208284031215612114575f80fd5b813561211f816120c6565b9392505050565b5f805f60608486031215612138575f80fd5b8335612143816120c6565b92506020840135612153816120c6565b929592945050506040919091013590565b5f8060408385031215612175575f80fd5b8235612180816120c6565b915060208301358015158114612194575f80fd5b809150509250929050565b5f602082840312156121af575f80fd5b5035919050565b5f80604083850312156121c7575f80fd5b82356121d2816120c6565b91506020830135612194816120c6565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156108d1576108d1612217565b600181811c9082168061225257607f821691505b60208210810361227057634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215612286575f80fd5b815161211f816120c6565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b5f6001820161232a5761232a612217565b5060010190565b80820281158282048414176108d1576108d1612217565b5f8261236257634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156108d1576108d1612217565b5f805f6060848603121561238c575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156124095784516001600160a01b0316835293830193918301916001016123e4565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220b79a5f7a20b2b3ad049d21eaec1eaa9931585119edc03c14d99a125db973e69364736f6c63430008170033
Deployed Bytecode Sourcemap
12903:12964:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17868:285;;;;;;;;;;-1:-1:-1;17868:285:0;;;;;:::i;:::-;;:::i;:::-;;7960:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8947:194;;;;;;;;;;-1:-1:-1;8947:194:0;;;;;:::i;:::-;;:::i;:::-;;;1441:14:1;;1434:22;1416:41;;1404:2;1389:18;8947:194:0;1276:187:1;13890:63:0;;;;;;;;;;-1:-1:-1;13890:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12945:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1910:32:1;;;1892:51;;1880:2;1865:18;12945:51:0;1720:229:1;8288:108:0;;;;;;;;;;-1:-1:-1;8376:12:0;;8288:108;;;2100:25:1;;;2088:2;2073:18;8288:108:0;1954:177:1;9149:529:0;;;;;;;;;;-1:-1:-1;9149:529:0;;;;;:::i;:::-;;:::i;13038:53::-;;;;;;;;;;;;13084:6;13038:53;;13290:40;;;;;;;;;;;;;;;;8180:100;;;;;;;;;;-1:-1:-1;8263:9:0;;8180:100;;8263:9;;;;2947:36:1;;2935:2;2920:18;8180:100:0;2805:184:1;13253:28:0;;;;;;;;;;;;;;;;9686:290;;;;;;;;;;-1:-1:-1;9686:290:0;;;;;:::i;:::-;;:::i;13003:28::-;;;;;;;;;;-1:-1:-1;13003:28:0;;;;-1:-1:-1;;;;;13003:28:0;;;13375:33;;;;;;;;;;-1:-1:-1;13375:33:0;;;;;;;;13526:29;;;;;;;;;;;;;;;;17582:278;;;;;;;;;;-1:-1:-1;17582:278:0;;;;;:::i;:::-;;:::i;13596:28::-;;;;;;;;;;;;;;;;13631:30;;;;;;;;;;;;;;;;8404:143;;;;;;;;;;-1:-1:-1;8404:143:0;;;;;:::i;:::-;;:::i;6920:103::-;;;;;;;;;;;;;:::i;16590:121::-;;;;;;;;;;;;;:::i;16913:199::-;;;;;;;;;;-1:-1:-1;16913:199:0;;;;;:::i;:::-;;:::i;13736:32::-;;;;;;;;;;;;;;;;16463:119;;;;;;;;;;;;;:::i;6697:87::-;;;;;;;;;;-1:-1:-1;6770:6:0;;;;;-1:-1:-1;;;;;6770:6:0;6697:87;;8068:104;;;;;;;;;;;;;:::i;18351:306::-;;;;;;;;;;-1:-1:-1;18351:306:0;;;;;:::i;:::-;;:::i;17356:218::-;;;;;;;;;;-1:-1:-1;17356:218:0;;;;;:::i;:::-;;:::i;9984:475::-;;;;;;;;;;-1:-1:-1;9984:475:0;;;;;:::i;:::-;;:::i;13337:29::-;;;;;;;;;;;;;;;;13703:26;;;;;;;;;;;;;;;;8555:200;;;;;;;;;;-1:-1:-1;8555:200:0;;;;;:::i;:::-;;:::i;18861:222::-;;;;;;;;;;-1:-1:-1;18861:222:0;;;;;:::i;:::-;;:::i;13668:26::-;;;;;;;;;;;;;;;;16719:186;;;;;;;;;;-1:-1:-1;16719:186:0;;;;;:::i;:::-;;:::i;13962:57::-;;;;;;;;;;-1:-1:-1;13962:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13415:33;;;;;;;;;;-1:-1:-1;13415:33:0;;;;;;;;;;;18161:182;;;;;;;;;;-1:-1:-1;18161:182:0;;;;;:::i;:::-;;:::i;13171:35::-;;;;;;;;;;;;;;;;17120:228;;;;;;;;;;-1:-1:-1;17120:228:0;;;;;:::i;:::-;;:::i;13492:27::-;;;;;;;;;;;;;;;;8763:176;;;;;;;;;;-1:-1:-1;8763:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;8904:18:0;;;8877:7;8904:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8763:176;13213:33;;;;;;;;;;;;;;;;13562:25;;;;;;;;;;;;;;;;15669:415;;;:::i;7031:238::-;;;;;;;;;;-1:-1:-1;7031:238:0;;;;;:::i;:::-;;:::i;17868:285::-;6770:6;;-1:-1:-1;;;;;6770:6:0;;;;;6298:10;6832:23;6824:68;;;;-1:-1:-1;;;6824:68:0;;;;;;;:::i;:::-;;;;;;;;;17987:15:::1;:30:::0;;;18028:11:::1;:22:::0;;;18077:29:::1;18042:8:::0;18005:12;18077:29:::1;:::i;:::-;18061:13;:45:::0;;;18142:2:::1;-1:-1:-1::0;18125:19:0::1;18117:28;;;::::0;::::1;;17868:285:::0;;:::o;7960:100::-;8014:13;8047:5;8040:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7960:100;:::o;8947:194::-;9055:4;9072:39;6298:10;9095:7;9104:6;9072:8;:39::i;:::-;-1:-1:-1;9129:4:0;8947:194;;;;;:::o;9149:529::-;9289:4;9306:36;9316:6;9324:9;9335:6;9306:9;:36::i;:::-;-1:-1:-1;;;;;9382:19:0;;9355:24;9382:19;;;:11;:19;;;;;;;;6298:10;9382:33;;;;;;;;9448:26;;;;9426:116;;;;-1:-1:-1;;;9426:116:0;;5203:2:1;9426:116:0;;;5185:21:1;5242:2;5222:18;;;5215:30;5281:34;5261:18;;;5254:62;-1:-1:-1;;;5332:18:1;;;5325:38;5380:19;;9426:116:0;5001:404:1;9426:116:0;9578:57;9587:6;6298:10;9628:6;9609:16;:25;9578:8;:57::i;:::-;-1:-1:-1;9666:4:0;;9149:529;-1:-1:-1;;;;9149:529:0:o;9686:290::-;6298:10;9799:4;9888:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9888:34:0;;;;;;;;;;9799:4;;9816:130;;9866:7;;9888:47;;9925:10;;9888:47;:::i;:::-;9816:8;:130::i;17582:278::-;6770:6;;-1:-1:-1;;;;;6770:6:0;;;;;6298:10;6832:23;6824:68;;;;-1:-1:-1;;;6824:68:0;;;;;;;:::i;:::-;17700:14:::1;:29:::0;;;17740:10:::1;:21:::0;;;17787:27:::1;17753:8:::0;17717:12;17787:27:::1;:::i;:::-;17772:12;:42:::0;;;17849:2:::1;-1:-1:-1::0;17833:18:0::1;17825:27;;;::::0;::::1;8404:143:::0;-1:-1:-1;;;;;8521:18:0;8494:7;8521:18;;;;;;;;;;;;8404:143::o;6920:103::-;6770:6;;-1:-1:-1;;;;;6770:6:0;;;;;6298:10;6832:23;6824:68;;;;-1:-1:-1;;;6824:68:0;;;;;;;:::i;:::-;6985:30:::1;7012:1;6985:18;:30::i;:::-;6920:103::o:0;16590:121::-;6770:6;;16642:4;;-1:-1:-1;;;;;6770:6:0;;;;;6298:10;6832:23;6824:68;;;;-1:-1:-1;;;6824:68:0;;;;;;;:::i;:::-;-1:-1:-1;16659:14:0::1;:22:::0;;-1:-1:-1;;16659:22:0::1;::::0;;;16590:121;:::o;16913:199::-;6770:6;;-1:-1:-1;;;;;6770:6:0;;;;;6298:10;6832:23;6824:68;;;;-1:-1:-1;;;6824:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17043:48:0;;;::::1;;::::0;;;:31:::1;:48;::::0;;;;:61;;-1:-1:-1;;17043:61:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16913:199::o;16463:119::-;6770:6;;-1:-1:-1;;;;;6770:6:0;;;;;6298:10;6832:23;6824:68;;;;-1:-1:-1;;;6824:68:0;;;;;;;:::i;:::-;16518:13:::1;:20:::0;;-1:-1:-1;;16518:20:0::1;;;::::0;;16562:12:::1;16549:10;:25:::0;16463:119::o;8068:104::-;8124:13;8157:7;8150:14;;;;;:::i;18351:306::-;6770:6;;-1:-1:-1;;;;;6770:6:0;;;;;6298:10;6832:23;6824:68;;;;-1:-1:-1;;;6824:68:0;;;;;;;:::i;:::-;18497:13:::1;::::0;-1:-1:-1;;;;;18497:13:0;;::::1;18489:21:::0;;::::1;::::0;18467:128:::1;;;::::0;-1:-1:-1;;;18467:128:0;;5612:2:1;18467:128:0::1;::::0;::::1;5594:21:1::0;5651:2;5631:18;;;5624:30;5690:34;5670:18;;;5663:62;5761:27;5741:18;;;5734:55;5806:19;;18467:128:0::1;5410:421:1::0;18467:128:0::1;18608:41;18637:4;18643:5;18608:28;:41::i;17356:218::-:0;6770:6;;17448:4;;-1:-1:-1;;;;;6770:6:0;;;;;6298:10;6832:23;6824:68;;;;-1:-1:-1;;;6824:68:0;;;;;;;:::i;:::-;17486:1:::1;17473:9;:14;;:34;;;;;17504:3;17491:9;:16;;17473:34;17465:43;;;::::0;::::1;;-1:-1:-1::0;17519:13:0::1;:25:::0;17562:4:::1;::::0;17356:218::o;9984:475::-;6298:10;10102:4;10146:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10146:34:0;;;;;;;;;;10213:35;;;;10191:122;;;;-1:-1:-1;;;10191:122:0;;6038:2:1;10191:122:0;;;6020:21:1;6077:2;6057:18;;;6050:30;6116:34;6096:18;;;6089:62;-1:-1:-1;;;6167:18:1;;;6160:35;6212:19;;10191:122:0;5836:401:1;10191:122:0;10349:67;6298:10;10372:7;10400:15;10381:16;:34;10349:8;:67::i;:::-;-1:-1:-1;10447:4:0;;9984:475;-1:-1:-1;;;9984:475:0:o;8555:200::-;8666:4;8683:42;6298:10;8707:9;8718:6;8683:9;:42::i;18861:222::-;6770:6;;-1:-1:-1;;;;;6770:6:0;;;;;6298:10;6832:23;6824:68;;;;-1:-1:-1;;;6824:68:0;;;;;;;:::i;:::-;19014:14:::1;::::0;18971:58:::1;::::0;-1:-1:-1;;;;;19014:14:0;;::::1;::::0;18971:58;::::1;::::0;::::1;::::0;19014:14:::1;::::0;18971:58:::1;19040:14;:35:::0;;-1:-1:-1;;;;;;19040:35:0::1;-1:-1:-1::0;;;;;19040:35:0;;;::::1;::::0;;;::::1;::::0;;18861:222::o;16719:186::-;6770:6;;-1:-1:-1;;;;;6770:6:0;;;;;6298:10;6832:23;6824:68;;;;-1:-1:-1;;;6824:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16798:43:0;;::::1;;::::0;;;:31:::1;:43;::::0;;;;;;;:50;;;::::1;;-1:-1:-1::0;;16798:50:0;;::::1;::::0;::::1;::::0;;;16859:19:::1;:31:::0;;;;;;:38;;;;::::1;;::::0;;16719:186::o;18161:182::-;6770:6;;-1:-1:-1;;;;;6770:6:0;;;;;6298:10;6832:23;6824:68;;;;-1:-1:-1;;;6824:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18246:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;18246:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;18301:34;;1416:41:1;;;18301:34:0::1;::::0;1389:18:1;18301:34:0::1;;;;;;;18161:182:::0;;:::o;17120:228::-;6770:6;;17217:4;;-1:-1:-1;;;;;6770:6:0;;;;;6298:10;6832:23;6824:68;;;;-1:-1:-1;;;6824:68:0;;;;;;;:::i;:::-;17255:1:::1;17242:9;:14;;:34;;;;;17273:3;17260:9;:16;;17242:34;17234:43;;;::::0;::::1;;-1:-1:-1::0;17288:18:0::1;:30:::0;17336:4:::1;::::0;17120:228::o;15669:415::-;6770:6;;-1:-1:-1;;;;;6770:6:0;;;;;6298:10;6832:23;6824:68;;;;-1:-1:-1;;;6824:68:0;;;;;;;:::i;:::-;15765:15:::1;-1:-1:-1::0;;;;;15765:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15747:55:0::1;;15825:4;15845:15;-1:-1:-1::0;;;;;15845:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15747:131;::::0;-1:-1:-1;;;;;;15747:131:0::1;::::0;;;;;;-1:-1:-1;;;;;6728:15:1;;;15747:131:0::1;::::0;::::1;6710:34:1::0;6780:15;;6760:18;;;6753:43;6645:18;;15747:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15731:13;:147:::0;;-1:-1:-1;;;;;;15731:147:0::1;-1:-1:-1::0;;;;;15731:147:0;;;::::1;::::0;;::::1;::::0;;15889:55:::1;::::0;-1:-1:-1;15889:25:0::1;:55::i;:::-;15992:13;::::0;15955:58:::1;::::0;-1:-1:-1;;;;;15992:13:0::1;::::0;15955:28:::1;:58::i;:::-;16026:50;16040:24;16058:4;16040:9;:24::i;:::-;16066:9;16026:13;:50::i;7031:238::-:0;6770:6;;-1:-1:-1;;;;;6770:6:0;;;;;6298:10;6832:23;6824:68;;;;-1:-1:-1;;;6824:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7134:22:0;::::1;7112:110;;;::::0;-1:-1:-1;;;7112:110:0;;7009:2:1;7112:110:0::1;::::0;::::1;6991:21:1::0;7048:2;7028:18;;;7021:30;7087:34;7067:18;;;7060:62;-1:-1:-1;;;7138:18:1;;;7131:36;7184:19;;7112:110:0::1;6807:402:1::0;7112:110:0::1;7233:28;7252:8;7233:18;:28::i;:::-;7031:238:::0;:::o;12251:380::-;-1:-1:-1;;;;;12387:19:0;;12379:68;;;;-1:-1:-1;;;12379:68:0;;7416:2:1;12379:68:0;;;7398:21:1;7455:2;7435:18;;;7428:30;7494:34;7474:18;;;7467:62;-1:-1:-1;;;7545:18:1;;;7538:34;7589:19;;12379:68:0;7214:400:1;12379:68:0;-1:-1:-1;;;;;12466:21:0;;12458:68;;;;-1:-1:-1;;;12458:68:0;;7821:2:1;12458:68:0;;;7803:21:1;7860:2;7840:18;;;7833:30;7899:34;7879:18;;;7872:62;-1:-1:-1;;;7950:18:1;;;7943:32;7992:19;;12458:68:0;7619:398:1;12458:68:0;-1:-1:-1;;;;;12539:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12591:32;;2100:25:1;;;12591:32:0;;2073:18:1;12591:32:0;;;;;;;12251:380;;;:::o;19091:5060::-;-1:-1:-1;;;;;19223:18:0;;19215:68;;;;-1:-1:-1;;;19215:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19302:16:0;;19294:64;;;;-1:-1:-1;;;19294:64:0;;;;;;;:::i;:::-;19375:6;19385:1;19375:11;19371:93;;19403:28;19419:4;19425:2;19429:1;19403:15;:28::i;:::-;19091:5060;;;:::o;19371:93::-;19527:14;;19498:12;;19527:14;;19523:1661;;;6770:6;;-1:-1:-1;;;;;19580:15:0;;;6770:6;;;;;19580:15;;;;:49;;-1:-1:-1;6770:6:0;;-1:-1:-1;;;;;19616:13:0;;;6770:6;;;;;19616:13;;19580:49;:86;;;;-1:-1:-1;;;;;;19650:16:0;;;;19580:86;:128;;;;-1:-1:-1;;;;;;19687:21:0;;19701:6;19687:21;;19580:128;:160;;;;-1:-1:-1;19730:10:0;;-1:-1:-1;;;19730:10:0;;;;19729:11;19580:160;19558:1615;;;19780:13;;;;;;;19775:223;;-1:-1:-1;;;;;19852:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;19881:23:0;;;;;;:19;:23;;;;;;;;19852:52;19818:160;;;;-1:-1:-1;;;19818:160:0;;9034:2:1;19818:160:0;;;9016:21:1;9073:2;9053:18;;;9046:30;-1:-1:-1;;;9092:18:1;;;9085:52;9154:18;;19818:160:0;8832:346:1;19818:160:0;-1:-1:-1;;;;;20044:31:0;;;;;;:25;:31;;;;;;;;:92;;;;-1:-1:-1;;;;;;20101:35:0;;;;;;:31;:35;;;;;;;;20100:36;20044:92;20018:1140;;;20223:20;;20213:6;:30;;20179:169;;;;-1:-1:-1;;;20179:169:0;;9385:2:1;20179:169:0;;;9367:21:1;9424:2;9404:18;;;9397:30;9463:34;9443:18;;;9436:62;-1:-1:-1;;;9514:18:1;;;9507:51;9575:19;;20179:169:0;9183:417:1;20179:169:0;20431:20;;20414:13;20424:2;20414:9;:13::i;:::-;20405:22;;:6;:22;:::i;:::-;:46;;20371:151;;;;-1:-1:-1;;;20371:151:0;;9807:2:1;20371:151:0;;;9789:21:1;9846:2;9826:18;;;9819:30;-1:-1:-1;;;9865:18:1;;;9858:49;9924:18;;20371:151:0;9605:343:1;20371:151:0;20018:1140;;;-1:-1:-1;;;;;20591:29:0;;;;;;:25;:29;;;;;;;;:92;;;;-1:-1:-1;;;;;;20646:37:0;;;;;;:31;:37;;;;;;;;20645:38;20591:92;20565:593;;;20770:20;;20760:6;:30;;20726:170;;;;-1:-1:-1;;;20726:170:0;;10155:2:1;20726:170:0;;;10137:21:1;10194:2;10174:18;;;10167:30;10233:34;10213:18;;;10206:62;-1:-1:-1;;;10284:18:1;;;10277:52;10346:19;;20726:170:0;9953:418:1;20565:593:0;-1:-1:-1;;;;;20927:35:0;;;;;;:31;:35;;;;;;;;20922:236;;21047:20;;21030:13;21040:2;21030:9;:13::i;:::-;21021:22;;:6;:22;:::i;:::-;:46;;20987:151;;;;-1:-1:-1;;;20987:151:0;;9807:2:1;20987:151:0;;;9789:21:1;9846:2;9826:18;;;9819:30;-1:-1:-1;;;9865:18:1;;;9858:49;9924:18;;20987:151:0;9605:343:1;20987:151:0;21196:28;21227:24;21245:4;21227:9;:24::i;:::-;21301:18;;21196:55;;-1:-1:-1;21277:42:0;;;;;;;21350:35;;-1:-1:-1;21375:10:0;;-1:-1:-1;;;21375:10:0;;;;21374:11;21350:35;:83;;;;-1:-1:-1;21403:24:0;;;;:11;:24;;;;;;21431:1;-1:-1:-1;21403:29:0;21350:83;:132;;;;-1:-1:-1;;;;;;21451:31:0;;;;;;:25;:31;;;;;;;;21450:32;21350:132;:175;;;;-1:-1:-1;;;;;;21500:25:0;;;;;;:19;:25;;;;;;;;21499:26;21350:175;:216;;;;-1:-1:-1;;;;;;21543:23:0;;;;;;:19;:23;;;;;;;;21542:24;21350:216;21332:395;;;21593:10;:17;;-1:-1:-1;;;;21593:17:0;-1:-1:-1;;;21593:17:0;;;21627:10;:8;:10::i;:::-;21656:24;;;;:11;:24;;;;;21654:26;;21656:24;;;21654:26;;;:::i;:::-;;;;-1:-1:-1;21697:10:0;:18;;-1:-1:-1;;;;21697:18:0;;;21332:395;21758:10;;-1:-1:-1;;;21758:10:0;;;;21757:11;:57;;;;-1:-1:-1;;;;;;21785:29:0;;;;;;:25;:29;;;;;;;;21757:57;:100;;;;-1:-1:-1;;;;;;21832:25:0;;;;;;:19;:25;;;;;;;;21831:26;21757:100;21739:186;;;21884:29;:27;:29::i;:::-;21953:10;;-1:-1:-1;;;;;21980:25:0;;21937:12;21980:25;;;:19;:25;;;;;;21953:10;-1:-1:-1;;;21953:10:0;;;;;21952:11;;21980:25;;:52;;-1:-1:-1;;;;;;22009:23:0;;;;;;:19;:23;;;;;;;;21980:52;21976:100;;;-1:-1:-1;22059:5:0;21976:100;22088:12;22115:18;22148:14;22349:7;22345:1753;;;-1:-1:-1;;;;;22401:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;22450:1;22434:13;;:17;22401:50;22397:1427;;;22506:3;22489:13;;22480:6;:22;;;;:::i;:::-;22479:30;;;;:::i;:::-;22472:37;;22560:13;;22545:11;;22538:4;:18;;;;:::i;:::-;22537:36;;;;:::i;:::-;22528:45;-1:-1:-1;22605:13:0;22528:45;22605:4;:13;:::i;:::-;22899:11;:13;;22592:26;;-1:-1:-1;22899:11:0;:13;;;:::i;:::-;;;;-1:-1:-1;;22961:13:0;;22931:17;;22951:24;;-1:-1:-1;;;;;22961:13:0;22951:9;:24::i;:::-;22931:44;;22998:6;23008:1;22998:11;22994:490;;23077:4;23065:9;:16;:36;;;;;23100:1;23085:11;;:16;;23065:36;23064:105;;;;23144:4;23132:9;:16;:36;;;;;23167:1;23152:11;;:16;;23132:36;23064:171;;;;23211:3;23199:9;:15;:35;;;;;23233:1;23218:11;;:16;;23199:35;23064:238;;;;23277:3;23265:9;:15;:36;;;;;23299:2;23284:11;;:17;;23265:36;23034:431;;;23367:1;23353:11;:15;23404:1;;-1:-1:-1;23432:9:0;23404:1;23432:9;;:::i;:::-;;;23034:431;23525:6;23504:17;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;22397:1427:0;;-1:-1:-1;;22397:1427:0;;23608:1;23593:12;;:16;:51;;;;-1:-1:-1;;;;;;23613:31:0;;;;;;:25;:31;;;;;;;;23593:51;23589:235;;;23698:3;23682:12;;23673:6;:21;;;;:::i;:::-;23672:29;;;;:::i;:::-;23665:36;;23751:12;;23737:10;;23730:4;:17;;;;:::i;:::-;23729:34;;;;:::i;:::-;23720:43;-1:-1:-1;23795:13:0;23720:43;23795:4;:13;:::i;:::-;23782:26;;23589:235;23844:14;;23840:103;;23879:48;23895:4;23909;23916:10;23879:15;:48::i;:::-;23963:10;;23959:97;;23994:46;24010:4;24024:6;24033;23994:15;:46::i;:::-;24072:14;24082:4;24072:14;;:::i;:::-;;;22345:1753;24110:33;24126:4;24132:2;24136:6;24110:15;:33::i;:::-;19204:4947;;;;;;;19091:5060;;;:::o;7277:191::-;7370:6;;;-1:-1:-1;;;;;7387:17:0;;;7370:6;7387:17;;;-1:-1:-1;;;;;;7387:17:0;;;;;;7420:40;;7370:6;;;;;;;;7420:40;;7351:16;;7420:40;7340:128;7277:191;:::o;18665:188::-;-1:-1:-1;;;;;18748:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;18748:39:0;;;;;;;;;;18805:40;;18748:39;;:31;18805:40;;;18665:188;;:::o;16092:363::-;16174:62;16191:4;16206:15;16224:11;16174:8;:62::i;:::-;16249:15;-1:-1:-1;;;;;16249:31:0;;16288:9;16321:4;16341:11;16367:1;16383;16399:7;6770:6;;-1:-1:-1;;;;;6770:6:0;;;;;;6697:87;16399:7;16249:198;;;;;;-1:-1:-1;;;;;;16249:198:0;;;-1:-1:-1;;;;;11403:15:1;;;16249:198:0;;;11385:34:1;11435:18;;;11428:34;;;;11478:18;;;11471:34;;;;11521:18;;;11514:34;11585:15;;;11564:19;;;11557:44;16421:15:0;11617:19:1;;;11610:35;11319:19;;16249:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16092:363;;:::o;10467:770::-;-1:-1:-1;;;;;10607:20:0;;10599:70;;;;-1:-1:-1;;;10599:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10688:23:0;;10680:71;;;;-1:-1:-1;;;10680:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10848:17:0;;10824:21;10848:17;;;;;;;;;;;10898:23;;;;10876:111;;;;-1:-1:-1;;;10876:111:0;;12169:2:1;10876:111:0;;;12151:21:1;12208:2;12188:18;;;12181:30;12247:34;12227:18;;;12220:62;-1:-1:-1;;;12298:18:1;;;12291:36;12344:19;;10876:111:0;11967:402:1;10876:111:0;-1:-1:-1;;;;;11023:17:0;;;:9;:17;;;;;;;;;;;11043:22;;;11023:42;;11087:20;;;;;;;;:30;;11059:6;;11023:9;11087:30;;11059:6;;11087:30;:::i;:::-;;;;;;;;11152:9;-1:-1:-1;;;;;11135:35:0;11144:6;-1:-1:-1;;;;;11135:35:0;;11163:6;11135:35;;;;2100:25:1;;2088:2;2073:18;;1954:177;11135:35:0;;;;;;;;10588:649;10467:770;;;:::o;24159:517::-;24198:23;24224:24;24242:4;24224:9;:24::i;:::-;24198:50;;24259:12;24288:15;24307:1;24288:20;24284:59;;24325:7;;24159:517::o;24284:59::-;24377:13;;24359:15;:31;24355:95;;;24425:13;;24407:31;;24355:95;24491:15;24519:36;24491:15;24519:16;:36::i;:::-;24590:14;;24582:86;;-1:-1:-1;;;;;24590:14:0;;;;24632:21;;24582:86;;;;24632:21;24590:14;24582:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;24159:517:0:o;25167:697::-;25267:13;;25226:28;;25257:24;;-1:-1:-1;;;;;25267:13:0;25257:9;:24::i;:::-;25226:55;;25321:3;25298:20;:26;25294:563;;;25365:4;25345:17;;:24;25341:312;;;25429:15;;25412:14;;:32;;;;:::i;:::-;25394:15;:50;25390:186;;;25469:7;25167:697::o;25390:186::-;25541:15;25524:14;:32;25341:312;;;25636:1;25616:17;:21;25341:312;25685:13;;25669:50;;-1:-1:-1;;;;;25685:13:0;25708:6;25685:13;25669:15;:50::i;:::-;25773:13;;25802:11;;;-1:-1:-1;;;;;;25802:11:0;;;;-1:-1:-1;;;;;25773:13:0;;;;;;25802:9;;:11;;;;;25736:19;;25802:11;;;;;;;25736:19;25773:13;25802:11;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;25833:12:0;;;;-1:-1:-1;25833:12:0;;-1:-1:-1;25833:12:0;25326:531;25215:649;25167:697::o;24684:475::-;24774:16;;;24788:1;24774:16;;;;;;;;24750:21;;24774:16;;;;;;;;;;-1:-1:-1;24774:16:0;24750:40;;24819:4;24801;24806:1;24801:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;24801:23:0;;;-1:-1:-1;;;;;24801:23:0;;;;;24845:15;-1:-1:-1;;;;;24845:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24835:4;24840:1;24835:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;24835:32:0;;;-1:-1:-1;;;;;24835:32:0;;;;;24880:62;24897:4;24912:15;24930:11;24880:8;:62::i;:::-;24955:196;;-1:-1:-1;;;24955:196:0;;-1:-1:-1;;;;;24955:15:0;:66;;;;:196;;25036:11;;25062:1;;25078:4;;25105;;25125:15;;24955:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:248:1;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:1;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:1:o;267:548::-;379:4;408:2;437;426:9;419:21;469:6;463:13;512:6;507:2;496:9;492:18;485:34;537:1;547:140;561:6;558:1;555:13;547:140;;;656:14;;;652:23;;646:30;622:17;;;641:2;618:26;611:66;576:10;;547:140;;;551:3;736:1;731:2;722:6;711:9;707:22;703:31;696:42;806:2;799;795:7;790:2;782:6;778:15;774:29;763:9;759:45;755:54;747:62;;;;267:548;;;;:::o;820:131::-;-1:-1:-1;;;;;895:31:1;;885:42;;875:70;;941:1;938;931:12;956:315;1024:6;1032;1085:2;1073:9;1064:7;1060:23;1056:32;1053:52;;;1101:1;1098;1091:12;1053:52;1140:9;1127:23;1159:31;1184:5;1159:31;:::i;:::-;1209:5;1261:2;1246:18;;;;1233:32;;-1:-1:-1;;;956:315:1:o;1468:247::-;1527:6;1580:2;1568:9;1559:7;1555:23;1551:32;1548:52;;;1596:1;1593;1586:12;1548:52;1635:9;1622:23;1654:31;1679:5;1654:31;:::i;:::-;1704:5;1468:247;-1:-1:-1;;;1468:247:1:o;2136:456::-;2213:6;2221;2229;2282:2;2270:9;2261:7;2257:23;2253:32;2250:52;;;2298:1;2295;2288:12;2250:52;2337:9;2324:23;2356:31;2381:5;2356:31;:::i;:::-;2406:5;-1:-1:-1;2463:2:1;2448:18;;2435:32;2476:33;2435:32;2476:33;:::i;:::-;2136:456;;2528:7;;-1:-1:-1;;;2582:2:1;2567:18;;;;2554:32;;2136:456::o;2994:416::-;3059:6;3067;3120:2;3108:9;3099:7;3095:23;3091:32;3088:52;;;3136:1;3133;3126:12;3088:52;3175:9;3162:23;3194:31;3219:5;3194:31;:::i;:::-;3244:5;-1:-1:-1;3301:2:1;3286:18;;3273:32;3343:15;;3336:23;3324:36;;3314:64;;3374:1;3371;3364:12;3314:64;3397:7;3387:17;;;2994:416;;;;;:::o;3415:180::-;3474:6;3527:2;3515:9;3506:7;3502:23;3498:32;3495:52;;;3543:1;3540;3533:12;3495:52;-1:-1:-1;3566:23:1;;3415:180;-1:-1:-1;3415:180:1:o;3600:388::-;3668:6;3676;3729:2;3717:9;3708:7;3704:23;3700:32;3697:52;;;3745:1;3742;3735:12;3697:52;3784:9;3771:23;3803:31;3828:5;3803:31;:::i;:::-;3853:5;-1:-1:-1;3910:2:1;3895:18;;3882:32;3923:33;3882:32;3923:33;:::i;3993:356::-;4195:2;4177:21;;;4214:18;;;4207:30;4273:34;4268:2;4253:18;;4246:62;4340:2;4325:18;;3993:356::o;4354:127::-;4415:10;4410:3;4406:20;4403:1;4396:31;4446:4;4443:1;4436:15;4470:4;4467:1;4460:15;4486:125;4551:9;;;4572:10;;;4569:36;;;4585:18;;:::i;4616:380::-;4695:1;4691:12;;;;4738;;;4759:61;;4813:4;4805:6;4801:17;4791:27;;4759:61;4866:2;4858:6;4855:14;4835:18;4832:38;4829:161;;4912:10;4907:3;4903:20;4900:1;4893:31;4947:4;4944:1;4937:15;4975:4;4972:1;4965:15;4829:161;;4616:380;;;:::o;6242:251::-;6312:6;6365:2;6353:9;6344:7;6340:23;6336:32;6333:52;;;6381:1;6378;6371:12;6333:52;6413:9;6407:16;6432:31;6457:5;6432:31;:::i;8022:401::-;8224:2;8206:21;;;8263:2;8243:18;;;8236:30;8302:34;8297:2;8282:18;;8275:62;-1:-1:-1;;;8368:2:1;8353:18;;8346:35;8413:3;8398:19;;8022:401::o;8428:399::-;8630:2;8612:21;;;8669:2;8649:18;;;8642:30;8708:34;8703:2;8688:18;;8681:62;-1:-1:-1;;;8774:2:1;8759:18;;8752:33;8817:3;8802:19;;8428:399::o;10376:135::-;10415:3;10436:17;;;10433:43;;10456:18;;:::i;:::-;-1:-1:-1;10503:1:1;10492:13;;10376:135::o;10516:168::-;10589:9;;;10620;;10637:15;;;10631:22;;10617:37;10607:71;;10658:18;;:::i;10689:217::-;10729:1;10755;10745:132;;10799:10;10794:3;10790:20;10787:1;10780:31;10834:4;10831:1;10824:15;10862:4;10859:1;10852:15;10745:132;-1:-1:-1;10891:9:1;;10689:217::o;10911:128::-;10978:9;;;10999:11;;;10996:37;;;11013:18;;:::i;11656:306::-;11744:6;11752;11760;11813:2;11801:9;11792:7;11788:23;11784:32;11781:52;;;11829:1;11826;11819:12;11781:52;11858:9;11852:16;11842:26;;11908:2;11897:9;11893:18;11887:25;11877:35;;11952:2;11941:9;11937:18;11931:25;11921:35;;11656:306;;;;;:::o;12716:127::-;12777:10;12772:3;12768:20;12765:1;12758:31;12808:4;12805:1;12798:15;12832:4;12829:1;12822:15;12848:980;13110:4;13158:3;13147:9;13143:19;13189:6;13178:9;13171:25;13215:2;13253:6;13248:2;13237:9;13233:18;13226:34;13296:3;13291:2;13280:9;13276:18;13269:31;13320:6;13355;13349:13;13386:6;13378;13371:22;13424:3;13413:9;13409:19;13402:26;;13463:2;13455:6;13451:15;13437:29;;13484:1;13494:195;13508:6;13505:1;13502:13;13494:195;;;13573:13;;-1:-1:-1;;;;;13569:39:1;13557:52;;13664:15;;;;13629:12;;;;13605:1;13523:9;13494:195;;;-1:-1:-1;;;;;;;13745:32:1;;;;13740:2;13725:18;;13718:60;-1:-1:-1;;;13809:3:1;13794:19;13787:35;13706:3;12848:980;-1:-1:-1;;;12848:980:1:o
Swarm Source
ipfs://b79a5f7a20b2b3ad049d21eaec1eaa9931585119edc03c14d99a125db973e693
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.