ERC-20
Overview
Max Total Supply
6,666,666 Hades
Holders
184
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
585.894043153059854724 HadesValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Hades
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-07-21 */ /** https://medium.com/@HadesUnderworld/hades-has-awoken-18bfe636da49 */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.15; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( 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 addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function removeLiquidityETH( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountToken, uint256 amountETH); function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts); } interface IDexFactory { function getPair(address tokenA, address tokenB) external view returns (address pair); function createPair(address tokenA, address tokenB) external returns (address pair); } 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 ); } contract Hades is Context, IERC20, Ownable { string private constant _name = "Underworld"; string private constant _symbol = "Hades"; uint8 private constant _decimals = 18; address payable public marketingWalletAddress = payable(0x6f9753730fF956D2cdf66A6Bd69145f7a9fb633F); address payable private constant initialLpReceiver = payable(0x1D6eE36D23012660DfFd470e9142736E7d3F3C77); mapping(address => uint256) private balances; mapping(address => mapping(address => uint256)) private allowances; mapping(address => bool) public isExcludedFromFee; mapping(address => bool) public isMarketPair; mapping(address => bool) public isEarlyBuyer; mapping(address => bool) public isTxLimitExempt; mapping(address => bool) public isWalletLimitExempt; uint256 public buyTax = 666; uint256 public sellTax = 666; uint256 public lpShare = 200; uint256 public marketingShare = 366; uint256 public autoBurnShare = 100; uint256 private constant _totalSupply = 6666666 * 10**_decimals; uint256 public swapThreshold = 1000 * 10**_decimals; uint256 public maxTxAmount = 33333 * 10**_decimals; uint256 public walletMax = 66666 * 10**_decimals; IDexRouter public immutable dexRouter; address public lpPair; bool private isInSwap; bool public swapEnabled = true; bool public swapByLimitOnly = false; bool public launched = false; bool public checkWalletLimit = true; bool public snipeBlockExpired = false; uint256 public launchBlock = 0; uint256 public snipeBlockAmount = 0; uint256 public sellBlockAmount = 0; event SwapSettingsUpdated( bool swapEnabled_, uint256 swapThreshold_, bool swapByLimitOnly_ ); event SwapTokensForETH(uint256 amountIn, address[] path); event AccountWhitelisted( address account, bool feeExempt, bool walletLimitExempt, bool txLimitExempt ); event RouterVersionChanged(address newRouterAddress); event TaxesChanged(uint256 newBuyTax, uint256 newSellTax); event TaxDistributionChanged( uint256 newLpShare, uint256 newMarketingShare, uint256 newAutoBurnShare ); event MarketingWalletChanged(address marketingWalletAddress_); event EarlyBuyerUpdated(address account, bool isEarlyBuyer_); event MarketPairUpdated(address account, bool isMarketPair_); event WalletLimitChanged(uint256 walletMax_); event MaxTxAmountChanged(uint256 maxTxAmount_); event MaxWalletCheckChanged(bool checkWalletLimit_); modifier lockTheSwap() { isInSwap = true; _; isInSwap = false; } constructor() payable { dexRouter = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; isExcludedFromFee[address(marketingWalletAddress)] = true; isExcludedFromFee[address(initialLpReceiver)] = true; isExcludedFromFee[address(dexRouter)] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[address(this)] = true; isTxLimitExempt[address(marketingWalletAddress)] = true; isTxLimitExempt[address(initialLpReceiver)] = true; isTxLimitExempt[address(dexRouter)] = true; isWalletLimitExempt[owner()] = true; isWalletLimitExempt[address(this)] = true; isWalletLimitExempt[address(marketingWalletAddress)] = true; isWalletLimitExempt[address(initialLpReceiver)] = true; isWalletLimitExempt[address(dexRouter)] = true; allowances[address(this)][address(dexRouter)] = _totalSupply; balances[address(this)] = 4889333 * (10 ** decimals()); emit Transfer(address(0), address(this), balanceOf(address(this))); balances[initialLpReceiver] = _totalSupply - balanceOf(address(this)); emit Transfer(address(0), initialLpReceiver, balanceOf(initialLpReceiver)); } //to receive ETH from dexRouter when swapping receive() external payable {} function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _totalSupply; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply - balanceOf(address(0xdead)); } function balanceOf(address account) public view override returns (uint256) { return balances[account]; } function allowance(address owner_, address spender) public view override returns (uint256) { return allowances[owner_][spender]; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve( _msgSender(), spender, allowances[_msgSender()][spender] + addedValue ); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve( _msgSender(), spender, allowances[_msgSender()][spender] - subtractedValue ); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve( address owner_, address spender, uint256 amount ) private { require(owner_ != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); allowances[owner_][spender] = amount; emit Approval(owner_, spender, amount); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), allowances[sender][_msgSender()] - amount ); return true; } function setIsEarlyBuyer(address account, bool isEarlyBuyer_) public onlyOwner { isEarlyBuyer[account] = isEarlyBuyer_; emit EarlyBuyerUpdated(account, isEarlyBuyer_); } function massSetIsEarlyBuyer(address[] calldata accounts, bool isEarlyBuyer_) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++){ isEarlyBuyer[accounts[i]] = isEarlyBuyer_; emit EarlyBuyerUpdated(accounts[i], isEarlyBuyer_); } } function setMarketPairStatus(address account, bool isMarketPair_) public onlyOwner { isMarketPair[account] = isMarketPair_; emit MarketPairUpdated(account, isMarketPair_); } function setTaxes(uint256 newBuyTax, uint256 newSellTax) external onlyOwner { require(newBuyTax <= 3000, "Cannot exceed 30%"); require(newSellTax <= 3000, "Cannot exceed 30%"); buyTax = newBuyTax; sellTax = newSellTax; emit TaxesChanged(newBuyTax, newSellTax); } function setTaxDistribution( uint256 newLpShare, uint256 newMarketingShare, uint256 newAutoBurnShare ) external onlyOwner { lpShare = newLpShare; marketingShare = newMarketingShare; autoBurnShare = newAutoBurnShare; emit TaxDistributionChanged( newLpShare, newMarketingShare, newAutoBurnShare ); } function setMaxTxAmount(uint256 maxTxAmount_) external onlyOwner { require(maxTxAmount_ >= totalSupply() * 5 / 1000); maxTxAmount = maxTxAmount_; emit MaxTxAmountChanged(maxTxAmount_); } function setWalletLimit(uint256 walletMax_) external onlyOwner { require(walletMax_ >= totalSupply() * 1 / 100); walletMax = walletMax_; emit WalletLimitChanged(walletMax_); } function enableDisableWalletLimit(bool checkWalletLimit_) external onlyOwner { checkWalletLimit = checkWalletLimit_; emit MaxWalletCheckChanged(checkWalletLimit_); } function whitelistAccount( address account, bool feeExempt, bool walletLimitExempt, bool txLimitExempt ) public onlyOwner { isExcludedFromFee[account] = feeExempt; isWalletLimitExempt[account] = walletLimitExempt; isTxLimitExempt[account] = txLimitExempt; emit AccountWhitelisted( account, feeExempt, walletLimitExempt, txLimitExempt ); } function updateSwapSettings( bool swapEnabled_, uint256 swapThreshold_, bool swapByLimitOnly_ ) public onlyOwner { swapEnabled = swapEnabled_; swapThreshold = swapThreshold_; swapByLimitOnly = swapByLimitOnly_; emit SwapSettingsUpdated( swapEnabled_, swapThreshold_, swapByLimitOnly_ ); } function setMarketingWalletAddress(address marketingWalletAddress_) external onlyOwner { require( marketingWalletAddress_ != address(0), "New address cannot be zero address" ); marketingWalletAddress = payable(marketingWalletAddress_); emit MarketingWalletChanged(marketingWalletAddress_); } function transferToAddressETH(address payable recipient, uint256 amount) private { bool success; (success, ) = address(recipient).call{value: amount}(""); } function _transfer( address sender, address recipient, uint256 amount ) private returns (bool) { if (isInSwap) { return _basicTransfer(sender, recipient, amount); } else { require( sender != address(0), "ERC20: transfer from the zero address" ); require( recipient != address(0), "ERC20: transfer to the zero address" ); require( !isEarlyBuyer[sender] && !isEarlyBuyer[recipient], "To/from address is blacklisted!" ); if (!isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) { require(launched, "Not Launched."); if (isMarketPair[sender] || isMarketPair[recipient]) { require( amount <= maxTxAmount, "Transfer amount exceeds the maxTxAmount." ); } if (!snipeBlockExpired) { checkIfBot(sender, recipient); } } bool isTaxFree = ((!isMarketPair[sender] && !isMarketPair[recipient]) || isExcludedFromFee[sender] || isExcludedFromFee[recipient]); if ( !isTaxFree && !isMarketPair[sender] && swapEnabled && !isInSwap ) { uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold; if (overMinimumTokenBalance) { if (swapByLimitOnly) contractTokenBalance = swapThreshold; if(contractTokenBalance > swapThreshold * 20) contractTokenBalance = swapThreshold * 20; swapAndLiquify(contractTokenBalance); } } balances[sender] = balances[sender] - amount; uint256 finalAmount = isTaxFree ? amount : takeFee(sender, recipient, amount); if (checkWalletLimit && !isWalletLimitExempt[recipient]) require((balanceOf(recipient) + finalAmount) <= walletMax); balances[recipient] = balances[recipient] + finalAmount; emit Transfer(sender, recipient, finalAmount); return true; } } function checkIfBot(address sender, address recipient) private { if ((block.number - launchBlock) > snipeBlockAmount) { snipeBlockExpired = true; } else if (sender != owner() && recipient != owner()) { if (!isMarketPair[sender] && sender != address(this)) { isEarlyBuyer[sender] = true; } if (!isMarketPair[recipient] && recipient != address(this)) { isEarlyBuyer[recipient] = true; } } } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { balances[sender] = balances[sender] - amount; balances[recipient] = balances[recipient] + amount; emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { uint256 totalShares = lpShare + marketingShare + autoBurnShare; uint256 tokensForBurn = (tAmount * autoBurnShare) / totalShares; uint256 tokensForLP = ((tAmount * lpShare) / totalShares) / 2; uint256 tokensForSwap = tAmount - tokensForLP - tokensForBurn; swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance; uint256 bnbShares = totalShares - autoBurnShare - (lpShare / 2); uint256 bnbForLiquidity = ((amountReceived * lpShare) / bnbShares) / 2; uint256 bnbForMarketing = amountReceived - bnbForLiquidity; if (bnbForMarketing > 0) { transferToAddressETH(marketingWalletAddress, bnbForMarketing); } if (autoBurnShare > 0) { _basicTransfer(address(this), address(0xdead), tokensForBurn); } if (bnbForLiquidity > 0 && tokensForLP > 0) { addLiquidity(tokensForLP, bnbForLiquidity); } } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); _approve(address(this), address(dexRouter), tokenAmount); // make the swap dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(dexRouter), tokenAmount); // add the liquidity dexRouter.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable address(0xdead), block.timestamp ); } function takeFee( address sender, address recipient, uint256 amount ) internal returns (uint256) { uint256 feeAmount = (amount * buyTax) / 10000; address feeReceiver = address(this); if (isEarlyBuyer[sender] || isEarlyBuyer[recipient]) { feeAmount = (amount * 9900) / 10000; } else if (isMarketPair[recipient]) { // Early seller penalty if(launchBlock + sellBlockAmount > block.number){ feeAmount = (amount * 9900) / 10000; } else { feeAmount = (amount * sellTax) / 10000; } } if (feeAmount > 0) { balances[feeReceiver] = balances[feeReceiver] + feeAmount; emit Transfer(sender, feeReceiver, feeAmount); } return amount - feeAmount; } function launch(uint256 _snipePenaltyBlocks, uint256 _sellPenaltyBlocks) external onlyOwner { require(!launched, "Trading is already active, cannot relaunch."); // create pair lpPair = IDexFactory(dexRouter.factory()).createPair(address(this),dexRouter.WETH()); isMarketPair[address(lpPair)] = true; isWalletLimitExempt[address(lpPair)] = true; // add the liquidity require(address(this).balance > 0, "Must have ETH on contract to launch"); require(balanceOf(address(this)) > 0, "Must have Tokens on contract to launch"); _approve(address(this), address(dexRouter), balanceOf(address(this))); dexRouter.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, // slippage is unavoidable 0, // slippage is unavoidable address(initialLpReceiver), block.timestamp ); launched = true; launchBlock = block.number; snipeBlockAmount = _snipePenaltyBlocks; sellBlockAmount = _sellPenaltyBlocks; } // withdraw ETH if stuck or someone sends to the address function withdrawStuckETH() external onlyOwner { bool success; (success,) = address(msg.sender).call{value: address(this).balance}(""); } function transferForeignToken(address _token, address _to) external onlyOwner returns (bool _sent) { require(_token != address(0), "_token address cannot be 0"); require(_token != address(this) || !launched, "Can't withdraw native tokens while trading is active"); uint256 _contractBalance = IERC20(_token).balanceOf(address(this)); _sent = IERC20(_token).transfer(_to, _contractBalance); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"feeExempt","type":"bool"},{"indexed":false,"internalType":"bool","name":"walletLimitExempt","type":"bool"},{"indexed":false,"internalType":"bool","name":"txLimitExempt","type":"bool"}],"name":"AccountWhitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isEarlyBuyer_","type":"bool"}],"name":"EarlyBuyerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isMarketPair_","type":"bool"}],"name":"MarketPairUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingWalletAddress_","type":"address"}],"name":"MarketingWalletChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTxAmount_","type":"uint256"}],"name":"MaxTxAmountChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"checkWalletLimit_","type":"bool"}],"name":"MaxWalletCheckChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"RouterVersionChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"swapEnabled_","type":"bool"},{"indexed":false,"internalType":"uint256","name":"swapThreshold_","type":"uint256"},{"indexed":false,"internalType":"bool","name":"swapByLimitOnly_","type":"bool"}],"name":"SwapSettingsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newLpShare","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMarketingShare","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newAutoBurnShare","type":"uint256"}],"name":"TaxDistributionChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"TaxesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"walletMax_","type":"uint256"}],"name":"WalletLimitChanged","type":"event"},{"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":[],"name":"autoBurnShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"checkWalletLimit_","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isEarlyBuyer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snipePenaltyBlocks","type":"uint256"},{"internalType":"uint256","name":"_sellPenaltyBlocks","type":"uint256"}],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"isEarlyBuyer_","type":"bool"}],"name":"massSetIsEarlyBuyer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellBlockAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isEarlyBuyer_","type":"bool"}],"name":"setIsEarlyBuyer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isMarketPair_","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingWalletAddress_","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount_","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLpShare","type":"uint256"},{"internalType":"uint256","name":"newMarketingShare","type":"uint256"},{"internalType":"uint256","name":"newAutoBurnShare","type":"uint256"}],"name":"setTaxDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"walletMax_","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipeBlockAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snipeBlockExpired","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"transferForeignToken","outputs":[{"internalType":"bool","name":"_sent","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":[{"internalType":"bool","name":"swapEnabled_","type":"bool"},{"internalType":"uint256","name":"swapThreshold_","type":"uint256"},{"internalType":"bool","name":"swapByLimitOnly_","type":"bool"}],"name":"updateSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"feeExempt","type":"bool"},{"internalType":"bool","name":"walletLimitExempt","type":"bool"},{"internalType":"bool","name":"txLimitExempt","type":"bool"}],"name":"whitelistAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a0604052600180546001600160a01b031916736f9753730ff956d2cdf66a6bd69145f7a9fb633f17905561029a6009819055600a90815560c8600b5561016e600c556064600d55620000559060129062000589565b62000063906103e8620005a1565b600e55620000746012600a62000589565b6200008290618235620005a1565b600f55620000936012600a62000589565b620000a2906201046a620005a1565b6010556011805464ffffffffff60a81b1916630100000160a81b1790556000601281905560138190556014819055620000d83390565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d608052600160046000620001536000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600490935281832080548516600190811790915580548216845282842080548616821790557f72561d5c342534b1deca11a33c1020fa14db18c1e4ac0bf44a776f9e7573e5768054861682179055608051909116835290822080549093168117909255600790620001fd6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600790935281832080548516600190811790915580548216845282842080548616821790557fe91869424c29752464d2787eacddeda57193b221f303bd0acc5f50fab5273f4f8054861682179055608051909116835290822080549093168117909255600890620002a76000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600890935281832080548516600190811790915580548216845282842080548616821790557f612bb347ff48b73a63d465feccf3717b905df8067413b8db2e7c15c1094a27048054861682179055608051909116835291208054909216179055620003466012600a62000589565b62000355906265b9aa620005a1565b3060009081526003602090815260408083206080516001600160a01b03168452909152902055620003896012600a62000589565b6200039890624a9af5620005a1565b3060008181526002602052604081208390559091600080516020620035d88339815191529060405190815260200160405180910390a330600090815260026020526040902054620003ec6012600a62000589565b620003fb906265b9aa620005a1565b620004079190620005c3565b731d6ee36d23012660dffd470e9142736e7d3f3c77600081815260026020527f8a5c5aa8594df8088bfe9bc1f95be866ae11e00dbeda11401dbce92dd2e0b5048390559091600080516020620035d88339815191529060405190815260200160405180910390a3620005dd565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004cb578160001904821115620004af57620004af62000474565b80851615620004bd57918102915b93841c93908002906200048f565b509250929050565b600082620004e45750600162000583565b81620004f35750600062000583565b81600181146200050c5760028114620005175762000537565b600191505062000583565b60ff8411156200052b576200052b62000474565b50506001821b62000583565b5060208310610133831016604e8410600b84101617156200055c575081810a62000583565b6200056883836200048a565b80600019048211156200057f576200057f62000474565b0290505b92915050565b60006200059a60ff841683620004d3565b9392505050565b6000816000190483118215151615620005be57620005be62000474565b500290565b600082821015620005d857620005d862000474565b500390565b608051612fa062000638600039600081816103a101528181610eaa01528181610f3b01528181611149015281816111730152818161266f01528181612728015281816127640152818161286501526128a10152612fa06000f3fe60806040526004361061031e5760003560e01c8063844d591c116101ab578063cc1776d3116100f7578063ec28438a11610095578063f2fde38b1161006f578063f2fde38b146109b4578063f5648a4f146109d4578063f872858a146109e9578063fe31452414610a0a57600080fd5b8063ec28438a14610954578063f0ed555b14610974578063f1d5f5171461099457600080fd5b8063dd62ed3e116100d1578063dd62ed3e146108b7578063e227cf95146108fd578063e932ec9a1461091e578063ebc38ab01461093e57600080fd5b8063cc1776d31461086b578063d00efb2f14610881578063d158272d1461089757600080fd5b8063916d694311610164578063a9059cbb1161013e578063a9059cbb146107db578063baa16dc3146107fb578063c647b20e1461081b578063c867d60b1461083b57600080fd5b8063916d69431461075d57806395d89b411461078d578063a457c2d7146107bb57600080fd5b8063844d591c146106985780638b42507f146106b85780638c06f391146106e85780638c0b5e22146107085780638da5cb5b1461071e5780638e3657aa1461073c57600080fd5b80633ecad2711161026a5780636ddd1713116102235780638091f3bf116101fd5780638091f3bf1461062157806382760cd2146106425780638366e79a1461066257806383e13fe31461068257600080fd5b80636ddd1713146105cb57806370a08231146105ec578063715018a61461060c57600080fd5b80633ecad271146104f5578063452ed4f1146105255780634cb80fd5146105455780634f7041a5146105655780635342acb41461057b57806354eb5121146105ab57600080fd5b806318160ddd116102d75780632943bdab116102b15780632943bdab1461048e5780632b112e49146104a4578063313ce567146104b957806339509351146104d557600080fd5b806318160ddd1461043757806323b872dd1461044c5780632563ae831461046c57600080fd5b80630445b6671461032a57806306fdde03146103535780630758d9241461038f57806309218ee7146103db578063095ea7b3146103f1578063174e078b1461042157600080fd5b3661032557005b600080fd5b34801561033657600080fd5b50610340600e5481565b6040519081526020015b60405180910390f35b34801561035f57600080fd5b5060408051808201909152600a815269155b99195c9ddbdc9b1960b21b60208201525b60405161034a919061292f565b34801561039b57600080fd5b506103c37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161034a565b3480156103e757600080fd5b50610340600c5481565b3480156103fd57600080fd5b5061041161040c36600461299c565b610a20565b604051901515815260200161034a565b34801561042d57600080fd5b5061034060135481565b34801561044357600080fd5b50610340610a37565b34801561045857600080fd5b506104116104673660046129c8565b610a57565b34801561047857600080fd5b5061048c610487366004612a17565b610aab565b005b34801561049a57600080fd5b50610340600d5481565b3480156104b057600080fd5b50610340610b36565b3480156104c557600080fd5b506040516012815260200161034a565b3480156104e157600080fd5b506104116104f036600461299c565b610b66565b34801561050157600080fd5b50610411610510366004612a34565b60056020526000908152604090205460ff1681565b34801561053157600080fd5b506011546103c3906001600160a01b031681565b34801561055157600080fd5b5061048c610560366004612a34565b610b9d565b34801561057157600080fd5b5061034060095481565b34801561058757600080fd5b50610411610596366004612a34565b60046020526000908152604090205460ff1681565b3480156105b757600080fd5b5061048c6105c6366004612a51565b610c76565b3480156105d757600080fd5b5060115461041190600160a81b900460ff1681565b3480156105f857600080fd5b50610340610607366004612a34565b610d81565b34801561061857600080fd5b5061048c610d9c565b34801561062d57600080fd5b5060115461041190600160b81b900460ff1681565b34801561064e57600080fd5b5061048c61065d366004612ad7565b610e10565b34801561066e57600080fd5b5061041161067d366004612af9565b61124d565b34801561068e57600080fd5b5061034060145481565b3480156106a457600080fd5b5061048c6106b3366004612b32565b611443565b3480156106c457600080fd5b506104116106d3366004612a34565b60076020526000908152604090205460ff1681565b3480156106f457600080fd5b5061048c610703366004612b60565b6114d1565b34801561071457600080fd5b50610340600f5481565b34801561072a57600080fd5b506000546001600160a01b03166103c3565b34801561074857600080fd5b5060115461041190600160b01b900460ff1681565b34801561076957600080fd5b50610411610778366004612a34565b60066020526000908152604090205460ff1681565b34801561079957600080fd5b50604080518082019091526005815264486164657360d81b6020820152610382565b3480156107c757600080fd5b506104116107d636600461299c565b611551565b3480156107e757600080fd5b506104116107f636600461299c565b611588565b34801561080757600080fd5b5061048c610816366004612b32565b611595565b34801561082757600080fd5b5061048c610836366004612ad7565b61161b565b34801561084757600080fd5b50610411610856366004612a34565b60086020526000908152604090205460ff1681565b34801561087757600080fd5b50610340600a5481565b34801561088d57600080fd5b5061034060125481565b3480156108a357600080fd5b506001546103c3906001600160a01b031681565b3480156108c357600080fd5b506103406108d2366004612af9565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561090957600080fd5b5060115461041190600160c81b900460ff1681565b34801561092a57600080fd5b5061048c610939366004612b8c565b611711565b34801561094a57600080fd5b50610340600b5481565b34801561096057600080fd5b5061048c61096f366004612bc3565b6117b2565b34801561098057600080fd5b5061048c61098f366004612bdc565b61183d565b3480156109a057600080fd5b5061048c6109af366004612bc3565b611900565b3480156109c057600080fd5b5061048c6109cf366004612a34565b61198a565b3480156109e057600080fd5b5061048c611a74565b3480156109f557600080fd5b5060115461041190600160c01b900460ff1681565b348015610a1657600080fd5b5061034060105481565b6000610a2d338484611ae0565b5060015b92915050565b6000610a456012600a612d32565b610a52906265b9aa612d41565b905090565b6000610a64848484611c04565b506001600160a01b038416600090815260036020908152604080832033808552925290912054610aa0918691610a9b908690612d60565b611ae0565b5060015b9392505050565b6000546001600160a01b03163314610ade5760405162461bcd60e51b8152600401610ad590612d77565b60405180910390fd5b60118054821515600160c01b0260ff60c01b199091161790556040517fd77f03fb55ba6b94fd92cce5c4299c19942acdde281980bdcd02f132dd27fd3490610b2b90831515815260200190565b60405180910390a150565b6000610b4361dead610d81565b610b4f6012600a612d32565b610b5c906265b9aa612d41565b610a529190612d60565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610a2d918590610a9b908690612dac565b6000546001600160a01b03163314610bc75760405162461bcd60e51b8152600401610ad590612d77565b6001600160a01b038116610c285760405162461bcd60e51b815260206004820152602260248201527f4e657720616464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b6064820152608401610ad5565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527fa964ba5c52d7e7bfcae4fb1ae4db9f211756d0e618e85fac5283b882a39e7a0b90602001610b2b565b6000546001600160a01b03163314610ca05760405162461bcd60e51b8152600401610ad590612d77565b60005b82811015610d7b578160066000868685818110610cc257610cc2612dc4565b9050602002016020810190610cd79190612a34565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0861ffea819c7470cbefb1765bce78388684cd327b561fd217484236b4cbb2d3848483818110610d3257610d32612dc4565b9050602002016020810190610d479190612a34565b604080516001600160a01b03909216825284151560208301520160405180910390a180610d7381612dda565b915050610ca3565b50505050565b6001600160a01b031660009081526002602052604090205490565b6000546001600160a01b03163314610dc65760405162461bcd60e51b8152600401610ad590612d77565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e3a5760405162461bcd60e51b8152600401610ad590612d77565b601154600160b81b900460ff1615610ea85760405162461bcd60e51b815260206004820152602b60248201527f54726164696e6720697320616c7265616479206163746976652c2063616e6e6f60448201526a3a103932b630bab731b41760a91b6064820152608401610ad5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2a9190612df3565b6001600160a01b031663c9c65396307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbb9190612df3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611008573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102c9190612df3565b601180546001600160a01b0319166001600160a01b0392831690811782556000908152600560209081526040808320805460ff199081166001908117909255945490951683526008909152902080549091169091179055476110dc5760405162461bcd60e51b815260206004820152602360248201527f4d757374206861766520455448206f6e20636f6e747261637420746f206c61756044820152620dcc6d60eb1b6064820152608401610ad5565b60006110e730610d81565b116111435760405162461bcd60e51b815260206004820152602660248201527f4d757374206861766520546f6b656e73206f6e20636f6e747261637420746f206044820152650d8c2eadcc6d60d31b6064820152608401610ad5565b611171307f0000000000000000000000000000000000000000000000000000000000000000610a9b30610d81565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d71947306111ab30610d81565b600080731d6ee36d23012660dffd470e9142736e7d3f3c77426040518863ffffffff1660e01b81526004016111e596959493929190612e10565b60606040518083038185885af1158015611203573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112289190612e4b565b50506011805460ff60b81b1916600160b81b1790555043601255601391909155601455565b600080546001600160a01b031633146112785760405162461bcd60e51b8152600401610ad590612d77565b6001600160a01b0383166112ce5760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610ad5565b6001600160a01b038316301415806112f05750601154600160b81b900460ff16155b6113595760405162461bcd60e51b815260206004820152603460248201527f43616e2774207769746864726177206e617469766520746f6b656e73207768696044820152736c652074726164696e672069732061637469766560601b6064820152608401610ad5565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa1580156113a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c49190612e79565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af1158015611417573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143b9190612e92565b949350505050565b6000546001600160a01b0316331461146d5760405162461bcd60e51b8152600401610ad590612d77565b6001600160a01b038216600081815260056020908152604091829020805460ff19168515159081179091558251938452908301527f160ff69a72bc70f3e792a86c87d27070e421562197f032d96bcab11c5010222e91015b60405180910390a15050565b6000546001600160a01b031633146114fb5760405162461bcd60e51b8152600401610ad590612d77565b600b839055600c829055600d81905560408051848152602081018490529081018290527f182101bc4f3117ca4bac06c236d9b9d22164fd259705bb944f9c4580cdba1d9b906060015b60405180910390a1505050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610a2d918590610a9b908690612d60565b6000610aa0338484611c04565b6000546001600160a01b031633146115bf5760405162461bcd60e51b8152600401610ad590612d77565b6001600160a01b038216600081815260066020908152604091829020805460ff19168515159081179091558251938452908301527f0861ffea819c7470cbefb1765bce78388684cd327b561fd217484236b4cbb2d391016114c5565b6000546001600160a01b031633146116455760405162461bcd60e51b8152600401610ad590612d77565b610bb882111561168b5760405162461bcd60e51b815260206004820152601160248201527043616e6e6f74206578636565642033302560781b6044820152606401610ad5565b610bb88111156116d15760405162461bcd60e51b815260206004820152601160248201527043616e6e6f74206578636565642033302560781b6044820152606401610ad5565b6009829055600a81905560408051838152602081018390527f5eee0b95930ee59011f34615b0b7dc6cc58c01d1f07d04a01a3a1e70d2554cf091016114c5565b6000546001600160a01b0316331461173b5760405162461bcd60e51b8152600401610ad590612d77565b60118054600e84905561ffff60a81b1916600160a81b85151590810260ff60b01b191691909117600160b01b8415159081029190911790925560408051918252602082018590528101919091527f11208aed08835f646702af16c636fb4351554fa2f623991905cadb0293a88afc90606001611544565b6000546001600160a01b031633146117dc5760405162461bcd60e51b8152600401610ad590612d77565b6103e86117e7610a37565b6117f2906005612d41565b6117fc9190612eaf565b81101561180857600080fd5b600f8190556040518181527fcff95ed354a1a3fcbabf882bfa4a9319f55569c324478c800820398451df187190602001610b2b565b6000546001600160a01b031633146118675760405162461bcd60e51b8152600401610ad590612d77565b6001600160a01b0384166000818152600460209081526040808320805488151560ff19918216811790925560088452828520805489151590831681179091556007855294839020805488151592168217905582519586529285015283019190915260608201527f12d9c9f75d95e930caf8a1f18460585ce2349b367898dbf23e394afef2d35d959060800160405180910390a150505050565b6000546001600160a01b0316331461192a5760405162461bcd60e51b8152600401610ad590612d77565b6064611934610a37565b61193f906001612d41565b6119499190612eaf565b81101561195557600080fd5b60108190556040518181527f7872485612198920508f0a96f4e47084f84df76e33b2b1d76ceff0dc83499aa690602001610b2b565b6000546001600160a01b031633146119b45760405162461bcd60e51b8152600401610ad590612d77565b6001600160a01b038116611a195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ad5565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611a9e5760405162461bcd60e51b8152600401610ad590612d77565b604051600090339047908381818185875af1925050503d8060008114610d7b576040519150601f19603f3d011682016040523d82523d6000602084013e610d7b565b6001600160a01b038316611b425760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ad5565b6001600160a01b038216611ba35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ad5565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b601154600090600160a01b900460ff1615611c2b57611c24848484612154565b9050610aa4565b6001600160a01b038416611c8f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610ad5565b6001600160a01b038316611cf15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ad5565b6001600160a01b03841660009081526006602052604090205460ff16158015611d3357506001600160a01b03831660009081526006602052604090205460ff16155b611d7f5760405162461bcd60e51b815260206004820152601f60248201527f546f2f66726f6d206164647265737320697320626c61636b6c697374656421006044820152606401610ad5565b6001600160a01b03841660009081526007602052604090205460ff16158015611dc157506001600160a01b03831660009081526007602052604090205460ff16155b15611ed157601154600160b81b900460ff16611e0f5760405162461bcd60e51b815260206004820152600d60248201526c2737ba102630bab731b432b21760991b6044820152606401610ad5565b6001600160a01b03841660009081526005602052604090205460ff1680611e4e57506001600160a01b03831660009081526005602052604090205460ff165b15611eb657600f54821115611eb65760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610ad5565b601154600160c81b900460ff16611ed157611ed1848461220e565b6001600160a01b03841660009081526005602052604081205460ff16158015611f1357506001600160a01b03841660009081526005602052604090205460ff16155b80611f3657506001600160a01b03851660009081526004602052604090205460ff165b80611f5957506001600160a01b03841660009081526004602052604090205460ff165b905080158015611f8257506001600160a01b03851660009081526005602052604090205460ff16155b8015611f975750601154600160a81b900460ff165b8015611fad5750601154600160a01b900460ff16155b15612016576000611fbd30610d81565b600e54909150811080159061201357601154600160b01b900460ff1615611fe457600e5491505b600e54611ff2906014612d41565b82111561200a57600e54612007906014612d41565b91505b61201382612326565b50505b6001600160a01b03851660009081526002602052604090205461203a908490612d60565b6001600160a01b0386166000908152600260205260408120919091558161206b57612066868686612491565b61206d565b835b601154909150600160c01b900460ff1680156120a257506001600160a01b03851660009081526008602052604090205460ff16155b156120c957601054816120b487610d81565b6120be9190612dac565b11156120c957600080fd5b6001600160a01b0385166000908152600260205260409020546120ed908290612dac565b6001600160a01b0380871660008181526002602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121419085815260200190565b60405180910390a3600192505050610aa4565b6001600160a01b038316600090815260026020526040812054612178908390612d60565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546121a8908390612dac565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121fc9086815260200190565b60405180910390a35060019392505050565b60135460125461221e9043612d60565b111561223b576011805460ff60c81b1916600160c81b1790555050565b6000546001600160a01b0383811691161480159061226757506000546001600160a01b03828116911614155b15612322576001600160a01b03821660009081526005602052604090205460ff1615801561229e57506001600160a01b0382163014155b156122c7576001600160a01b0382166000908152600660205260409020805460ff191660011790555b6001600160a01b03811660009081526005602052604090205460ff161580156122f957506001600160a01b0381163014155b15612322576001600160a01b0381166000908152600660205260409020805460ff191660011790555b5050565b6011805460ff60a01b1916600160a01b179055600d54600c54600b546000929161234f91612dac565b6123599190612dac565b9050600081600d548461236c9190612d41565b6123769190612eaf565b90506000600283600b548661238b9190612d41565b6123959190612eaf565b61239f9190612eaf565b90506000826123ae8387612d60565b6123b89190612d60565b90506123c381612618565b600b5447906000906123d790600290612eaf565b600d546123e49088612d60565b6123ee9190612d60565b90506000600282600b54856124039190612d41565b61240d9190612eaf565b6124179190612eaf565b905060006124258285612d60565b9050801561244357600154612443906001600160a01b031682612805565b600d541561245a576124583061dead89612154565b505b60008211801561246a5750600086115b1561247957612479868361285f565b50506011805460ff60a01b1916905550505050505050565b600080612710600954846124a59190612d41565b6124af9190612eaf565b6001600160a01b038616600090815260066020526040902054909150309060ff16806124f357506001600160a01b03851660009081526006602052604090205460ff165b1561251857612710612507856126ac612d41565b6125119190612eaf565b915061257d565b6001600160a01b03851660009081526005602052604090205460ff161561257d574360145460125461254a9190612dac565b111561255f57612710612507856126ac612d41565b612710600a54856125709190612d41565b61257a9190612eaf565b91505b8115612604576001600160a01b0381166000908152600260205260409020546125a7908390612dac565b6001600160a01b0380831660008181526002602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906125fb9086815260200190565b60405180910390a35b61260e8285612d60565b9695505050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061264d5761264d612dc4565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ef9190612df3565b8160018151811061270257612702612dc4565b60200260200101906001600160a01b031690816001600160a01b03168152505061274d307f000000000000000000000000000000000000000000000000000000000000000084611ae0565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906127a2908590600090869030904290600401612f15565b600060405180830381600087803b1580156127bc57600080fd5b505af11580156127d0573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516114c5929190612f51565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612852576040519150601f19603f3d011682016040523d82523d6000602084013e612857565b606091505b505050505050565b61288a307f000000000000000000000000000000000000000000000000000000000000000084611ae0565b60405163f305d71960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f305d7199083906128e59030908790600090819061dead904290600401612e10565b60606040518083038185885af1158015612903573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906129289190612e4b565b5050505050565b600060208083528351808285015260005b8181101561295c57858101830151858201604001528201612940565b8181111561296e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461299957600080fd5b50565b600080604083850312156129af57600080fd5b82356129ba81612984565b946020939093013593505050565b6000806000606084860312156129dd57600080fd5b83356129e881612984565b925060208401356129f881612984565b929592945050506040919091013590565b801515811461299957600080fd5b600060208284031215612a2957600080fd5b8135610aa481612a09565b600060208284031215612a4657600080fd5b8135610aa481612984565b600080600060408486031215612a6657600080fd5b833567ffffffffffffffff80821115612a7e57600080fd5b818601915086601f830112612a9257600080fd5b813581811115612aa157600080fd5b8760208260051b8501011115612ab657600080fd5b60209283019550935050840135612acc81612a09565b809150509250925092565b60008060408385031215612aea57600080fd5b50508035926020909101359150565b60008060408385031215612b0c57600080fd5b8235612b1781612984565b91506020830135612b2781612984565b809150509250929050565b60008060408385031215612b4557600080fd5b8235612b5081612984565b91506020830135612b2781612a09565b600080600060608486031215612b7557600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215612ba157600080fd5b8335612bac81612a09565b9250602084013591506040840135612acc81612a09565b600060208284031215612bd557600080fd5b5035919050565b60008060008060808587031215612bf257600080fd5b8435612bfd81612984565b93506020850135612c0d81612a09565b92506040850135612c1d81612a09565b91506060850135612c2d81612a09565b939692955090935050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612c89578160001904821115612c6f57612c6f612c38565b80851615612c7c57918102915b93841c9390800290612c53565b509250929050565b600082612ca057506001610a31565b81612cad57506000610a31565b8160018114612cc35760028114612ccd57612ce9565b6001915050610a31565b60ff841115612cde57612cde612c38565b50506001821b610a31565b5060208310610133831016604e8410600b8410161715612d0c575081810a610a31565b612d168383612c4e565b8060001904821115612d2a57612d2a612c38565b029392505050565b6000610aa460ff841683612c91565b6000816000190483118215151615612d5b57612d5b612c38565b500290565b600082821015612d7257612d72612c38565b500390565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115612dbf57612dbf612c38565b500190565b634e487b7160e01b600052603260045260246000fd5b600060018201612dec57612dec612c38565b5060010190565b600060208284031215612e0557600080fd5b8151610aa481612984565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215612e6057600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215612e8b57600080fd5b5051919050565b600060208284031215612ea457600080fd5b8151610aa481612a09565b600082612ecc57634e487b7160e01b600052601260045260246000fd5b500490565b600081518084526020808501945080840160005b83811015612f0a5781516001600160a01b031687529582019590820190600101612ee5565b509495945050505050565b85815284602082015260a060408201526000612f3460a0830186612ed1565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061143b6040830184612ed156fea2646970667358221220d5ec94cf524573f7cc204e95ca4fdb6308f59c02eb9b6b42800bcd86f784f5ef64736f6c634300080f0033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
Deployed Bytecode
0x60806040526004361061031e5760003560e01c8063844d591c116101ab578063cc1776d3116100f7578063ec28438a11610095578063f2fde38b1161006f578063f2fde38b146109b4578063f5648a4f146109d4578063f872858a146109e9578063fe31452414610a0a57600080fd5b8063ec28438a14610954578063f0ed555b14610974578063f1d5f5171461099457600080fd5b8063dd62ed3e116100d1578063dd62ed3e146108b7578063e227cf95146108fd578063e932ec9a1461091e578063ebc38ab01461093e57600080fd5b8063cc1776d31461086b578063d00efb2f14610881578063d158272d1461089757600080fd5b8063916d694311610164578063a9059cbb1161013e578063a9059cbb146107db578063baa16dc3146107fb578063c647b20e1461081b578063c867d60b1461083b57600080fd5b8063916d69431461075d57806395d89b411461078d578063a457c2d7146107bb57600080fd5b8063844d591c146106985780638b42507f146106b85780638c06f391146106e85780638c0b5e22146107085780638da5cb5b1461071e5780638e3657aa1461073c57600080fd5b80633ecad2711161026a5780636ddd1713116102235780638091f3bf116101fd5780638091f3bf1461062157806382760cd2146106425780638366e79a1461066257806383e13fe31461068257600080fd5b80636ddd1713146105cb57806370a08231146105ec578063715018a61461060c57600080fd5b80633ecad271146104f5578063452ed4f1146105255780634cb80fd5146105455780634f7041a5146105655780635342acb41461057b57806354eb5121146105ab57600080fd5b806318160ddd116102d75780632943bdab116102b15780632943bdab1461048e5780632b112e49146104a4578063313ce567146104b957806339509351146104d557600080fd5b806318160ddd1461043757806323b872dd1461044c5780632563ae831461046c57600080fd5b80630445b6671461032a57806306fdde03146103535780630758d9241461038f57806309218ee7146103db578063095ea7b3146103f1578063174e078b1461042157600080fd5b3661032557005b600080fd5b34801561033657600080fd5b50610340600e5481565b6040519081526020015b60405180910390f35b34801561035f57600080fd5b5060408051808201909152600a815269155b99195c9ddbdc9b1960b21b60208201525b60405161034a919061292f565b34801561039b57600080fd5b506103c37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161034a565b3480156103e757600080fd5b50610340600c5481565b3480156103fd57600080fd5b5061041161040c36600461299c565b610a20565b604051901515815260200161034a565b34801561042d57600080fd5b5061034060135481565b34801561044357600080fd5b50610340610a37565b34801561045857600080fd5b506104116104673660046129c8565b610a57565b34801561047857600080fd5b5061048c610487366004612a17565b610aab565b005b34801561049a57600080fd5b50610340600d5481565b3480156104b057600080fd5b50610340610b36565b3480156104c557600080fd5b506040516012815260200161034a565b3480156104e157600080fd5b506104116104f036600461299c565b610b66565b34801561050157600080fd5b50610411610510366004612a34565b60056020526000908152604090205460ff1681565b34801561053157600080fd5b506011546103c3906001600160a01b031681565b34801561055157600080fd5b5061048c610560366004612a34565b610b9d565b34801561057157600080fd5b5061034060095481565b34801561058757600080fd5b50610411610596366004612a34565b60046020526000908152604090205460ff1681565b3480156105b757600080fd5b5061048c6105c6366004612a51565b610c76565b3480156105d757600080fd5b5060115461041190600160a81b900460ff1681565b3480156105f857600080fd5b50610340610607366004612a34565b610d81565b34801561061857600080fd5b5061048c610d9c565b34801561062d57600080fd5b5060115461041190600160b81b900460ff1681565b34801561064e57600080fd5b5061048c61065d366004612ad7565b610e10565b34801561066e57600080fd5b5061041161067d366004612af9565b61124d565b34801561068e57600080fd5b5061034060145481565b3480156106a457600080fd5b5061048c6106b3366004612b32565b611443565b3480156106c457600080fd5b506104116106d3366004612a34565b60076020526000908152604090205460ff1681565b3480156106f457600080fd5b5061048c610703366004612b60565b6114d1565b34801561071457600080fd5b50610340600f5481565b34801561072a57600080fd5b506000546001600160a01b03166103c3565b34801561074857600080fd5b5060115461041190600160b01b900460ff1681565b34801561076957600080fd5b50610411610778366004612a34565b60066020526000908152604090205460ff1681565b34801561079957600080fd5b50604080518082019091526005815264486164657360d81b6020820152610382565b3480156107c757600080fd5b506104116107d636600461299c565b611551565b3480156107e757600080fd5b506104116107f636600461299c565b611588565b34801561080757600080fd5b5061048c610816366004612b32565b611595565b34801561082757600080fd5b5061048c610836366004612ad7565b61161b565b34801561084757600080fd5b50610411610856366004612a34565b60086020526000908152604090205460ff1681565b34801561087757600080fd5b50610340600a5481565b34801561088d57600080fd5b5061034060125481565b3480156108a357600080fd5b506001546103c3906001600160a01b031681565b3480156108c357600080fd5b506103406108d2366004612af9565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561090957600080fd5b5060115461041190600160c81b900460ff1681565b34801561092a57600080fd5b5061048c610939366004612b8c565b611711565b34801561094a57600080fd5b50610340600b5481565b34801561096057600080fd5b5061048c61096f366004612bc3565b6117b2565b34801561098057600080fd5b5061048c61098f366004612bdc565b61183d565b3480156109a057600080fd5b5061048c6109af366004612bc3565b611900565b3480156109c057600080fd5b5061048c6109cf366004612a34565b61198a565b3480156109e057600080fd5b5061048c611a74565b3480156109f557600080fd5b5060115461041190600160c01b900460ff1681565b348015610a1657600080fd5b5061034060105481565b6000610a2d338484611ae0565b5060015b92915050565b6000610a456012600a612d32565b610a52906265b9aa612d41565b905090565b6000610a64848484611c04565b506001600160a01b038416600090815260036020908152604080832033808552925290912054610aa0918691610a9b908690612d60565b611ae0565b5060015b9392505050565b6000546001600160a01b03163314610ade5760405162461bcd60e51b8152600401610ad590612d77565b60405180910390fd5b60118054821515600160c01b0260ff60c01b199091161790556040517fd77f03fb55ba6b94fd92cce5c4299c19942acdde281980bdcd02f132dd27fd3490610b2b90831515815260200190565b60405180910390a150565b6000610b4361dead610d81565b610b4f6012600a612d32565b610b5c906265b9aa612d41565b610a529190612d60565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610a2d918590610a9b908690612dac565b6000546001600160a01b03163314610bc75760405162461bcd60e51b8152600401610ad590612d77565b6001600160a01b038116610c285760405162461bcd60e51b815260206004820152602260248201527f4e657720616464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b6064820152608401610ad5565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527fa964ba5c52d7e7bfcae4fb1ae4db9f211756d0e618e85fac5283b882a39e7a0b90602001610b2b565b6000546001600160a01b03163314610ca05760405162461bcd60e51b8152600401610ad590612d77565b60005b82811015610d7b578160066000868685818110610cc257610cc2612dc4565b9050602002016020810190610cd79190612a34565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0861ffea819c7470cbefb1765bce78388684cd327b561fd217484236b4cbb2d3848483818110610d3257610d32612dc4565b9050602002016020810190610d479190612a34565b604080516001600160a01b03909216825284151560208301520160405180910390a180610d7381612dda565b915050610ca3565b50505050565b6001600160a01b031660009081526002602052604090205490565b6000546001600160a01b03163314610dc65760405162461bcd60e51b8152600401610ad590612d77565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e3a5760405162461bcd60e51b8152600401610ad590612d77565b601154600160b81b900460ff1615610ea85760405162461bcd60e51b815260206004820152602b60248201527f54726164696e6720697320616c7265616479206163746976652c2063616e6e6f60448201526a3a103932b630bab731b41760a91b6064820152608401610ad5565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2a9190612df3565b6001600160a01b031663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbb9190612df3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611008573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102c9190612df3565b601180546001600160a01b0319166001600160a01b0392831690811782556000908152600560209081526040808320805460ff199081166001908117909255945490951683526008909152902080549091169091179055476110dc5760405162461bcd60e51b815260206004820152602360248201527f4d757374206861766520455448206f6e20636f6e747261637420746f206c61756044820152620dcc6d60eb1b6064820152608401610ad5565b60006110e730610d81565b116111435760405162461bcd60e51b815260206004820152602660248201527f4d757374206861766520546f6b656e73206f6e20636f6e747261637420746f206044820152650d8c2eadcc6d60d31b6064820152608401610ad5565b611171307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d610a9b30610d81565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d71947306111ab30610d81565b600080731d6ee36d23012660dffd470e9142736e7d3f3c77426040518863ffffffff1660e01b81526004016111e596959493929190612e10565b60606040518083038185885af1158015611203573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112289190612e4b565b50506011805460ff60b81b1916600160b81b1790555043601255601391909155601455565b600080546001600160a01b031633146112785760405162461bcd60e51b8152600401610ad590612d77565b6001600160a01b0383166112ce5760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610ad5565b6001600160a01b038316301415806112f05750601154600160b81b900460ff16155b6113595760405162461bcd60e51b815260206004820152603460248201527f43616e2774207769746864726177206e617469766520746f6b656e73207768696044820152736c652074726164696e672069732061637469766560601b6064820152608401610ad5565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa1580156113a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c49190612e79565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af1158015611417573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143b9190612e92565b949350505050565b6000546001600160a01b0316331461146d5760405162461bcd60e51b8152600401610ad590612d77565b6001600160a01b038216600081815260056020908152604091829020805460ff19168515159081179091558251938452908301527f160ff69a72bc70f3e792a86c87d27070e421562197f032d96bcab11c5010222e91015b60405180910390a15050565b6000546001600160a01b031633146114fb5760405162461bcd60e51b8152600401610ad590612d77565b600b839055600c829055600d81905560408051848152602081018490529081018290527f182101bc4f3117ca4bac06c236d9b9d22164fd259705bb944f9c4580cdba1d9b906060015b60405180910390a1505050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610a2d918590610a9b908690612d60565b6000610aa0338484611c04565b6000546001600160a01b031633146115bf5760405162461bcd60e51b8152600401610ad590612d77565b6001600160a01b038216600081815260066020908152604091829020805460ff19168515159081179091558251938452908301527f0861ffea819c7470cbefb1765bce78388684cd327b561fd217484236b4cbb2d391016114c5565b6000546001600160a01b031633146116455760405162461bcd60e51b8152600401610ad590612d77565b610bb882111561168b5760405162461bcd60e51b815260206004820152601160248201527043616e6e6f74206578636565642033302560781b6044820152606401610ad5565b610bb88111156116d15760405162461bcd60e51b815260206004820152601160248201527043616e6e6f74206578636565642033302560781b6044820152606401610ad5565b6009829055600a81905560408051838152602081018390527f5eee0b95930ee59011f34615b0b7dc6cc58c01d1f07d04a01a3a1e70d2554cf091016114c5565b6000546001600160a01b0316331461173b5760405162461bcd60e51b8152600401610ad590612d77565b60118054600e84905561ffff60a81b1916600160a81b85151590810260ff60b01b191691909117600160b01b8415159081029190911790925560408051918252602082018590528101919091527f11208aed08835f646702af16c636fb4351554fa2f623991905cadb0293a88afc90606001611544565b6000546001600160a01b031633146117dc5760405162461bcd60e51b8152600401610ad590612d77565b6103e86117e7610a37565b6117f2906005612d41565b6117fc9190612eaf565b81101561180857600080fd5b600f8190556040518181527fcff95ed354a1a3fcbabf882bfa4a9319f55569c324478c800820398451df187190602001610b2b565b6000546001600160a01b031633146118675760405162461bcd60e51b8152600401610ad590612d77565b6001600160a01b0384166000818152600460209081526040808320805488151560ff19918216811790925560088452828520805489151590831681179091556007855294839020805488151592168217905582519586529285015283019190915260608201527f12d9c9f75d95e930caf8a1f18460585ce2349b367898dbf23e394afef2d35d959060800160405180910390a150505050565b6000546001600160a01b0316331461192a5760405162461bcd60e51b8152600401610ad590612d77565b6064611934610a37565b61193f906001612d41565b6119499190612eaf565b81101561195557600080fd5b60108190556040518181527f7872485612198920508f0a96f4e47084f84df76e33b2b1d76ceff0dc83499aa690602001610b2b565b6000546001600160a01b031633146119b45760405162461bcd60e51b8152600401610ad590612d77565b6001600160a01b038116611a195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ad5565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611a9e5760405162461bcd60e51b8152600401610ad590612d77565b604051600090339047908381818185875af1925050503d8060008114610d7b576040519150601f19603f3d011682016040523d82523d6000602084013e610d7b565b6001600160a01b038316611b425760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ad5565b6001600160a01b038216611ba35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ad5565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b601154600090600160a01b900460ff1615611c2b57611c24848484612154565b9050610aa4565b6001600160a01b038416611c8f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610ad5565b6001600160a01b038316611cf15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ad5565b6001600160a01b03841660009081526006602052604090205460ff16158015611d3357506001600160a01b03831660009081526006602052604090205460ff16155b611d7f5760405162461bcd60e51b815260206004820152601f60248201527f546f2f66726f6d206164647265737320697320626c61636b6c697374656421006044820152606401610ad5565b6001600160a01b03841660009081526007602052604090205460ff16158015611dc157506001600160a01b03831660009081526007602052604090205460ff16155b15611ed157601154600160b81b900460ff16611e0f5760405162461bcd60e51b815260206004820152600d60248201526c2737ba102630bab731b432b21760991b6044820152606401610ad5565b6001600160a01b03841660009081526005602052604090205460ff1680611e4e57506001600160a01b03831660009081526005602052604090205460ff165b15611eb657600f54821115611eb65760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610ad5565b601154600160c81b900460ff16611ed157611ed1848461220e565b6001600160a01b03841660009081526005602052604081205460ff16158015611f1357506001600160a01b03841660009081526005602052604090205460ff16155b80611f3657506001600160a01b03851660009081526004602052604090205460ff165b80611f5957506001600160a01b03841660009081526004602052604090205460ff165b905080158015611f8257506001600160a01b03851660009081526005602052604090205460ff16155b8015611f975750601154600160a81b900460ff165b8015611fad5750601154600160a01b900460ff16155b15612016576000611fbd30610d81565b600e54909150811080159061201357601154600160b01b900460ff1615611fe457600e5491505b600e54611ff2906014612d41565b82111561200a57600e54612007906014612d41565b91505b61201382612326565b50505b6001600160a01b03851660009081526002602052604090205461203a908490612d60565b6001600160a01b0386166000908152600260205260408120919091558161206b57612066868686612491565b61206d565b835b601154909150600160c01b900460ff1680156120a257506001600160a01b03851660009081526008602052604090205460ff16155b156120c957601054816120b487610d81565b6120be9190612dac565b11156120c957600080fd5b6001600160a01b0385166000908152600260205260409020546120ed908290612dac565b6001600160a01b0380871660008181526002602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121419085815260200190565b60405180910390a3600192505050610aa4565b6001600160a01b038316600090815260026020526040812054612178908390612d60565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546121a8908390612dac565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121fc9086815260200190565b60405180910390a35060019392505050565b60135460125461221e9043612d60565b111561223b576011805460ff60c81b1916600160c81b1790555050565b6000546001600160a01b0383811691161480159061226757506000546001600160a01b03828116911614155b15612322576001600160a01b03821660009081526005602052604090205460ff1615801561229e57506001600160a01b0382163014155b156122c7576001600160a01b0382166000908152600660205260409020805460ff191660011790555b6001600160a01b03811660009081526005602052604090205460ff161580156122f957506001600160a01b0381163014155b15612322576001600160a01b0381166000908152600660205260409020805460ff191660011790555b5050565b6011805460ff60a01b1916600160a01b179055600d54600c54600b546000929161234f91612dac565b6123599190612dac565b9050600081600d548461236c9190612d41565b6123769190612eaf565b90506000600283600b548661238b9190612d41565b6123959190612eaf565b61239f9190612eaf565b90506000826123ae8387612d60565b6123b89190612d60565b90506123c381612618565b600b5447906000906123d790600290612eaf565b600d546123e49088612d60565b6123ee9190612d60565b90506000600282600b54856124039190612d41565b61240d9190612eaf565b6124179190612eaf565b905060006124258285612d60565b9050801561244357600154612443906001600160a01b031682612805565b600d541561245a576124583061dead89612154565b505b60008211801561246a5750600086115b1561247957612479868361285f565b50506011805460ff60a01b1916905550505050505050565b600080612710600954846124a59190612d41565b6124af9190612eaf565b6001600160a01b038616600090815260066020526040902054909150309060ff16806124f357506001600160a01b03851660009081526006602052604090205460ff165b1561251857612710612507856126ac612d41565b6125119190612eaf565b915061257d565b6001600160a01b03851660009081526005602052604090205460ff161561257d574360145460125461254a9190612dac565b111561255f57612710612507856126ac612d41565b612710600a54856125709190612d41565b61257a9190612eaf565b91505b8115612604576001600160a01b0381166000908152600260205260409020546125a7908390612dac565b6001600160a01b0380831660008181526002602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906125fb9086815260200190565b60405180910390a35b61260e8285612d60565b9695505050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061264d5761264d612dc4565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ef9190612df3565b8160018151811061270257612702612dc4565b60200260200101906001600160a01b031690816001600160a01b03168152505061274d307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611ae0565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906127a2908590600090869030904290600401612f15565b600060405180830381600087803b1580156127bc57600080fd5b505af11580156127d0573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516114c5929190612f51565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612852576040519150601f19603f3d011682016040523d82523d6000602084013e612857565b606091505b505050505050565b61288a307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611ae0565b60405163f305d71960e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063f305d7199083906128e59030908790600090819061dead904290600401612e10565b60606040518083038185885af1158015612903573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906129289190612e4b565b5050505050565b600060208083528351808285015260005b8181101561295c57858101830151858201604001528201612940565b8181111561296e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461299957600080fd5b50565b600080604083850312156129af57600080fd5b82356129ba81612984565b946020939093013593505050565b6000806000606084860312156129dd57600080fd5b83356129e881612984565b925060208401356129f881612984565b929592945050506040919091013590565b801515811461299957600080fd5b600060208284031215612a2957600080fd5b8135610aa481612a09565b600060208284031215612a4657600080fd5b8135610aa481612984565b600080600060408486031215612a6657600080fd5b833567ffffffffffffffff80821115612a7e57600080fd5b818601915086601f830112612a9257600080fd5b813581811115612aa157600080fd5b8760208260051b8501011115612ab657600080fd5b60209283019550935050840135612acc81612a09565b809150509250925092565b60008060408385031215612aea57600080fd5b50508035926020909101359150565b60008060408385031215612b0c57600080fd5b8235612b1781612984565b91506020830135612b2781612984565b809150509250929050565b60008060408385031215612b4557600080fd5b8235612b5081612984565b91506020830135612b2781612a09565b600080600060608486031215612b7557600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215612ba157600080fd5b8335612bac81612a09565b9250602084013591506040840135612acc81612a09565b600060208284031215612bd557600080fd5b5035919050565b60008060008060808587031215612bf257600080fd5b8435612bfd81612984565b93506020850135612c0d81612a09565b92506040850135612c1d81612a09565b91506060850135612c2d81612a09565b939692955090935050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612c89578160001904821115612c6f57612c6f612c38565b80851615612c7c57918102915b93841c9390800290612c53565b509250929050565b600082612ca057506001610a31565b81612cad57506000610a31565b8160018114612cc35760028114612ccd57612ce9565b6001915050610a31565b60ff841115612cde57612cde612c38565b50506001821b610a31565b5060208310610133831016604e8410600b8410161715612d0c575081810a610a31565b612d168383612c4e565b8060001904821115612d2a57612d2a612c38565b029392505050565b6000610aa460ff841683612c91565b6000816000190483118215151615612d5b57612d5b612c38565b500290565b600082821015612d7257612d72612c38565b500390565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115612dbf57612dbf612c38565b500190565b634e487b7160e01b600052603260045260246000fd5b600060018201612dec57612dec612c38565b5060010190565b600060208284031215612e0557600080fd5b8151610aa481612984565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215612e6057600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215612e8b57600080fd5b5051919050565b600060208284031215612ea457600080fd5b8151610aa481612a09565b600082612ecc57634e487b7160e01b600052601260045260246000fd5b500490565b600081518084526020808501945080840160005b83811015612f0a5781516001600160a01b031687529582019590820190600101612ee5565b509495945050505050565b85815284602082015260a060408201526000612f3460a0830186612ed1565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061143b6040830184612ed156fea2646970667358221220d5ec94cf524573f7cc204e95ca4fdb6308f59c02eb9b6b42800bcd86f784f5ef64736f6c634300080f0033
Deployed Bytecode Sourcemap
3969:18862:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5060:51;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5060:51:0;;;;;;;;8176:83;;;;;;;;;;-1:-1:-1;8246:5:0;;;;;;;;;;;;-1:-1:-1;;;8246:5:0;;;;8176:83;;;;;;;:::i;5232:37::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;980:32:1;;;962:51;;950:2;935:18;5232:37:0;798:221:1;4905:35:0;;;;;;;;;;;;;;;;9635:193;;;;;;;;;;-1:-1:-1;9635:193:0;;;;;:::i;:::-;;:::i;:::-;;;1645:14:1;;1638:22;1620:41;;1608:2;1593:18;9635:193:0;1480:187:1;5573:35:0;;;;;;;;;;;;;;;;8453:100;;;;;;;;;;;;;:::i;10425:349::-;;;;;;;;;;-1:-1:-1;10425:349:0;;;;;:::i;:::-;;:::i;12763:211::-;;;;;;;;;;-1:-1:-1;12763:211:0;;;;;:::i;:::-;;:::i;:::-;;4947:34;;;;;;;;;;;;;;;;8561:129;;;;;;;;;;;;;:::i;8362:83::-;;;;;;;;;;-1:-1:-1;8362:83:0;;4153:2;2644:36:1;;2632:2;2617:18;8362:83:0;2502:184:1;9017:296:0;;;;;;;;;;-1:-1:-1;9017:296:0;;;;;:::i;:::-;;:::i;4583:44::-;;;;;;;;;;-1:-1:-1;4583:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5276:21;;;;;;;;;;-1:-1:-1;5276:21:0;;;;-1:-1:-1;;;;;5276:21:0;;;13888:381;;;;;;;;;;-1:-1:-1;13888:381:0;;;;;:::i;:::-;;:::i;4799:27::-;;;;;;;;;;;;;;;;4527:49;;;;;;;;;;-1:-1:-1;4527:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11005:313;;;;;;;;;;-1:-1:-1;11005:313:0;;;;;:::i;:::-;;:::i;5334:30::-;;;;;;;;;;-1:-1:-1;5334:30:0;;;;-1:-1:-1;;;5334:30:0;;;;;;8698:118;;;;;;;;;;-1:-1:-1;8698:118:0;;;;;:::i;:::-;;:::i;1103:148::-;;;;;;;;;;;;;:::i;5413:28::-;;;;;;;;;;-1:-1:-1;5413:28:0;;;;-1:-1:-1;;;5413:28:0;;;;;;21007:1152;;;;;;;;;;-1:-1:-1;21007:1152:0;;;;;:::i;:::-;;:::i;22397:431::-;;;;;;;;;;-1:-1:-1;22397:431:0;;;;;:::i;:::-;;:::i;5615:34::-;;;;;;;;;;;;;;;;11326:219;;;;;;;;;;-1:-1:-1;11326:219:0;;;;;:::i;:::-;;:::i;4685:47::-;;;;;;;;;;-1:-1:-1;4685:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11896:418;;;;;;;;;;-1:-1:-1;11896:418:0;;;;;:::i;:::-;;:::i;5118:50::-;;;;;;;;;;;;;;;;889:79;;;;;;;;;;-1:-1:-1;927:7:0;954:6;-1:-1:-1;;;;;954:6:0;889:79;;5371:35;;;;;;;;;;-1:-1:-1;5371:35:0;;;;-1:-1:-1;;;5371:35:0;;;;;;4634:44;;;;;;;;;;-1:-1:-1;4634:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8267:87;;;;;;;;;;-1:-1:-1;8339:7:0;;;;;;;;;;;;-1:-1:-1;;;8339:7:0;;;;8267:87;;9321:306;;;;;;;;;;-1:-1:-1;9321:306:0;;;;;:::i;:::-;;:::i;10218:199::-;;;;;;;;;;-1:-1:-1;10218:199:0;;;;;:::i;:::-;;:::i;10782:215::-;;;;;;;;;;-1:-1:-1;10782:215:0;;;;;:::i;:::-;;:::i;11553:335::-;;;;;;;;;;-1:-1:-1;11553:335:0;;;;;:::i;:::-;;:::i;4739:51::-;;;;;;;;;;-1:-1:-1;4739:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4833:28;;;;;;;;;;;;;;;;5536:30;;;;;;;;;;;;;;;;4164:108;;;;;;;;;;-1:-1:-1;4164:108:0;;;;-1:-1:-1;;;;;4164:108:0;;;8824:185;;;;;;;;;;-1:-1:-1;8824:185:0;;;;;:::i;:::-;-1:-1:-1;;;;;8974:18:0;;;8942:7;8974:18;;;:10;:18;;;;;;;;:27;;;;;;;;;;;;;8824:185;5490:37;;;;;;;;;;-1:-1:-1;5490:37:0;;;;-1:-1:-1;;;5490:37:0;;;;;;13471:409;;;;;;;;;;-1:-1:-1;13471:409:0;;;;;:::i;:::-;;:::i;4870:28::-;;;;;;;;;;;;;;;;12322:218;;;;;;;;;;-1:-1:-1;12322:218:0;;;;;:::i;:::-;;:::i;12982:481::-;;;;;;;;;;-1:-1:-1;12982:481:0;;;;;:::i;:::-;;:::i;12548:207::-;;;;;;;;;;-1:-1:-1;12548:207:0;;;;;:::i;:::-;;:::i;1259:281::-;;;;;;;;;;-1:-1:-1;1259:281:0;;;;;:::i;:::-;;:::i;22229:160::-;;;;;;;;;;;;;:::i;5448:35::-;;;;;;;;;;-1:-1:-1;5448:35:0;;;;-1:-1:-1;;;5448:35:0;;;;;;5175:48;;;;;;;;;;;;;;;;9635:193;9737:4;9759:39;278:10;9782:7;9791:6;9759:8;:39::i;:::-;-1:-1:-1;9816:4:0;9635:193;;;;;:::o;8453:100::-;8506:7;5040:13;4153:2;5040;:13;:::i;:::-;5030:23;;:7;:23;:::i;:::-;8526:19;;8453:100;:::o;10425:349::-;10557:4;10574:36;10584:6;10592:9;10603:6;10574:9;:36::i;:::-;-1:-1:-1;;;;;;10692:18:0;;;;;;:10;:18;;;;;;;;278:10;10692:32;;;;;;;;;10621:123;;10644:6;;10692:41;;10727:6;;10692:41;:::i;:::-;10621:8;:123::i;:::-;-1:-1:-1;10762:4:0;10425:349;;;;;;:::o;12763:211::-;1016:6;;-1:-1:-1;;;;;1016:6:0;278:10;1016:22;1008:67;;;;-1:-1:-1;;;1008:67:0;;;;;;;:::i;:::-;;;;;;;;;12874:16:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;12874:36:0::1;-1:-1:-1::0;;;;12874:36:0;;::::1;;::::0;;12926:40:::1;::::0;::::1;::::0;::::1;::::0;12893:17;1645:14:1;1638:22;1620:41;;1608:2;1593:18;;1480:187;12926:40:0::1;;;;;;;;12763:211:::0;:::o;8561:129::-;8614:7;8656:26;8674:6;8656:9;:26::i;:::-;5040:13;4153:2;5040;:13;:::i;:::-;5030:23;;:7;:23;:::i;:::-;8641:41;;;;:::i;9017:296::-;278:10;9132:4;9226:24;;;:10;:24;;;;;;;;-1:-1:-1;;;;;9226:33:0;;;;;;;;;;9132:4;;9154:129;;9204:7;;9226:46;;9262:10;;9226:46;:::i;13888:381::-;1016:6;;-1:-1:-1;;;;;1016:6:0;278:10;1016:22;1008:67;;;;-1:-1:-1;;;1008:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14031:37:0;::::1;14009:121;;;::::0;-1:-1:-1;;;14009:121:0;;9290:2:1;14009:121:0::1;::::0;::::1;9272:21:1::0;9329:2;9309:18;;;9302:30;9368:34;9348:18;;;9341:62;-1:-1:-1;;;9419:18:1;;;9412:32;9461:19;;14009:121:0::1;9088:398:1::0;14009:121:0::1;14141:22;:57:::0;;-1:-1:-1;;;;;;14141:57:0::1;-1:-1:-1::0;;;;;14141:57:0;::::1;::::0;;::::1;::::0;;;14214:47:::1;::::0;962:51:1;;;14214:47:0::1;::::0;950:2:1;935:18;14214:47:0::1;798:221:1::0;11005:313:0;1016:6;;-1:-1:-1;;;;;1016:6:0;278:10;1016:22;1008:67;;;;-1:-1:-1;;;1008:67:0;;;;;;;:::i;:::-;11138:9:::1;11134:177;11153:19:::0;;::::1;11134:177;;;11221:13;11193:12;:25;11206:8;;11215:1;11206:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11193:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11193:25:0;:41;;-1:-1:-1;;11193:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11254:45:::1;11272:8:::0;;11281:1;11272:11;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11254:45;::::0;;-1:-1:-1;;;;;9809:32:1;;;9791:51;;9885:14;;9878:22;9873:2;9858:18;;9851:50;9764:18;11254:45:0::1;;;;;;;11174:3:::0;::::1;::::0;::::1;:::i;:::-;;;;11134:177;;;;11005:313:::0;;;:::o;8698:118::-;-1:-1:-1;;;;;8791:17:0;8764:7;8791:17;;;:8;:17;;;;;;;8698:118::o;1103:148::-;1016:6;;-1:-1:-1;;;;;1016:6:0;278:10;1016:22;1008:67;;;;-1:-1:-1;;;1008:67:0;;;;;;;:::i;:::-;1210:1:::1;1194:6:::0;;1173:40:::1;::::0;-1:-1:-1;;;;;1194:6:0;;::::1;::::0;1173:40:::1;::::0;1210:1;;1173:40:::1;1241:1;1224:19:::0;;-1:-1:-1;;;;;;1224:19:0::1;::::0;;1103:148::o;21007:1152::-;1016:6;;-1:-1:-1;;;;;1016:6:0;278:10;1016:22;1008:67;;;;-1:-1:-1;;;1008:67:0;;;;;;;:::i;:::-;21119:8:::1;::::0;-1:-1:-1;;;21119:8:0;::::1;;;21118:9;21110:65;;;::::0;-1:-1:-1;;;21110:65:0;;10254:2:1;21110:65:0::1;::::0;::::1;10236:21:1::0;10293:2;10273:18;;;10266:30;10332:34;10312:18;;;10305:62;-1:-1:-1;;;10383:18:1;;;10376:41;10434:19;;21110:65:0::1;10052:407:1::0;21110:65:0::1;21233:9;-1:-1:-1::0;;;;;21233:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21221:43:0::1;;21273:4;21279:9;-1:-1:-1::0;;;;;21279:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21221:75;::::0;-1:-1:-1;;;;;;21221:75:0::1;::::0;;;;;;-1:-1:-1;;;;;10950:15:1;;;21221:75:0::1;::::0;::::1;10932:34:1::0;11002:15;;10982:18;;;10975:43;10867:18;;21221:75:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21212:6;:84:::0;;-1:-1:-1;;;;;;21212:84:0::1;-1:-1:-1::0;;;;;21212:84:0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;21307:29:0;;;:12:::1;:29;::::0;;;;;;;:36;;-1:-1:-1;;21307:36:0;;::::1;-1:-1:-1::0;21307:36:0;;::::1;::::0;;;21382:6;;;;::::1;21354:36:::0;;:19:::1;:36:::0;;;;;:43;;;;::::1;::::0;;::::1;::::0;;21450:21:::1;21442:73;;;::::0;-1:-1:-1;;;21442:73:0;;11231:2:1;21442:73:0::1;::::0;::::1;11213:21:1::0;11270:2;11250:18;;;11243:30;11309:34;11289:18;;;11282:62;-1:-1:-1;;;11360:18:1;;;11353:33;11403:19;;21442:73:0::1;11029:399:1::0;21442:73:0::1;21563:1;21536:24;21554:4;21536:9;:24::i;:::-;:28;21528:79;;;::::0;-1:-1:-1;;;21528:79:0;;11635:2:1;21528:79:0::1;::::0;::::1;11617:21:1::0;11674:2;11654:18;;;11647:30;11713:34;11693:18;;;11686:62;-1:-1:-1;;;11764:18:1;;;11757:36;11810:19;;21528:79:0::1;11433:402:1::0;21528:79:0::1;21620:69;21637:4;21652:9;21664:24;21682:4;21664:9;:24::i;21620:69::-;21700:9;-1:-1:-1::0;;;;;21700:25:0::1;;21733:21;21778:4;21798:24;21816:4;21798:9;:24::i;:::-;21837:1;21880::::0;4349:42:::1;21964:15;21700:290;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;22003:8:0::1;:15:::0;;-1:-1:-1;;;;22003:15:0::1;-1:-1:-1::0;;;22003:15:0::1;::::0;;-1:-1:-1;22043:12:0::1;22029:11;:26:::0;22066:16:::1;:38:::0;;;;22115:15:::1;:36:::0;21007:1152::o;22397:431::-;22484:10;1016:6;;-1:-1:-1;;;;;1016:6:0;278:10;1016:22;1008:67;;;;-1:-1:-1;;;1008:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22515:20:0;::::1;22507:59;;;::::0;-1:-1:-1;;;22507:59:0;;12965:2:1;22507:59:0::1;::::0;::::1;12947:21:1::0;13004:2;12984:18;;;12977:30;13043:28;13023:18;;;13016:56;13089:18;;22507:59:0::1;12763:350:1::0;22507:59:0::1;-1:-1:-1::0;;;;;22585:23:0;::::1;22603:4;22585:23;;::::0;:36:::1;;-1:-1:-1::0;22613:8:0::1;::::0;-1:-1:-1;;;22613:8:0;::::1;;;22612:9;22585:36;22577:101;;;::::0;-1:-1:-1;;;22577:101:0;;13320:2:1;22577:101:0::1;::::0;::::1;13302:21:1::0;13359:2;13339:18;;;13332:30;13398:34;13378:18;;;13371:62;-1:-1:-1;;;13449:18:1;;;13442:50;13509:19;;22577:101:0::1;13118:416:1::0;22577:101:0::1;22716:39;::::0;-1:-1:-1;;;22716:39:0;;22749:4:::1;22716:39;::::0;::::1;962:51:1::0;22689:24:0::1;::::0;-1:-1:-1;;;;;22716:24:0;::::1;::::0;::::1;::::0;935:18:1;;22716:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22774:46;::::0;-1:-1:-1;;;22774:46:0;;-1:-1:-1;;;;;13920:32:1;;;22774:46:0::1;::::0;::::1;13902:51:1::0;13969:18;;;13962:34;;;22689:66:0;;-1:-1:-1;22774:23:0;;::::1;::::0;::::1;::::0;13875:18:1;;22774:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22766:54:::0;22397:431;-1:-1:-1;;;;22397:431:0:o;11326:219::-;1016:6;;-1:-1:-1;;;;;1016:6:0;278:10;1016:22;1008:67;;;;-1:-1:-1;;;1008:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11443:21:0;::::1;;::::0;;;:12:::1;:21;::::0;;;;;;;;:37;;-1:-1:-1;;11443:37:0::1;::::0;::::1;;::::0;;::::1;::::0;;;11496:41;;9791:51:1;;;9858:18;;;9851:50;11496:41:0::1;::::0;9764:18:1;11496:41:0::1;;;;;;;;11326:219:::0;;:::o;11896:418::-;1016:6;;-1:-1:-1;;;;;1016:6:0;278:10;1016:22;1008:67;;;;-1:-1:-1;;;1008:67:0;;;;;;;:::i;:::-;12061:7:::1;:20:::0;;;12092:14:::1;:34:::0;;;12137:13:::1;:32:::0;;;12185:121:::1;::::0;;14459:25:1;;;14515:2;14500:18;;14493:34;;;14543:18;;;14536:34;;;12185:121:0::1;::::0;14447:2:1;14432:18;12185:121:0::1;;;;;;;;11896:418:::0;;;:::o;9321:306::-;278:10;9441:4;9535:24;;;:10;:24;;;;;;;;-1:-1:-1;;;;;9535:33:0;;;;;;;;;;9441:4;;9463:134;;9513:7;;9535:51;;9571:15;;9535:51;:::i;10218:199::-;10323:4;10345:42;278:10;10369:9;10380:6;10345:9;:42::i;10782:215::-;1016:6;;-1:-1:-1;;;;;1016:6:0;278:10;1016:22;1008:67;;;;-1:-1:-1;;;1008:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10895:21:0;::::1;;::::0;;;:12:::1;:21;::::0;;;;;;;;:37;;-1:-1:-1;;10895:37:0::1;::::0;::::1;;::::0;;::::1;::::0;;;10948:41;;9791:51:1;;;9858:18;;;9851:50;10948:41:0::1;::::0;9764:18:1;10948:41:0::1;9623:284:1::0;11553:335:0;1016:6;;-1:-1:-1;;;;;1016:6:0;278:10;1016:22;1008:67;;;;-1:-1:-1;;;1008:67:0;;;;;;;:::i;:::-;11684:4:::1;11671:9;:17;;11663:47;;;::::0;-1:-1:-1;;;11663:47:0;;14783:2:1;11663:47:0::1;::::0;::::1;14765:21:1::0;14822:2;14802:18;;;14795:30;-1:-1:-1;;;14841:18:1;;;14834:47;14898:18;;11663:47:0::1;14581:341:1::0;11663:47:0::1;11743:4;11729:10;:18;;11721:48;;;::::0;-1:-1:-1;;;11721:48:0;;14783:2:1;11721:48:0::1;::::0;::::1;14765:21:1::0;14822:2;14802:18;;;14795:30;-1:-1:-1;;;14841:18:1;;;14834:47;14898:18;;11721:48:0::1;14581:341:1::0;11721:48:0::1;11780:6;:18:::0;;;11809:7:::1;:20:::0;;;11845:35:::1;::::0;;15101:25:1;;;15157:2;15142:18;;15135:34;;;11845:35:0::1;::::0;15074:18:1;11845:35:0::1;14927:248:1::0;13471:409:0;1016:6;;-1:-1:-1;;;;;1016:6:0;278:10;1016:22;1008:67;;;;-1:-1:-1;;;1008:67:0;;;;;;;:::i;:::-;13627:11:::1;:26:::0;;13664:13:::1;:30:::0;;;-1:-1:-1;;;;13705:34:0;-1:-1:-1;;;13627:26:0;::::1;;::::0;;::::1;-1:-1:-1::0;;;;13705:34:0;;;;;-1:-1:-1;;;13705:34:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;13755:117:::1;::::0;;15370:41:1;;;15442:2;15427:18;;15420:34;;;15470:18;;15463:50;;;;13755:117:0::1;::::0;15358:2:1;15343:18;13755:117:0::1;15180:339:1::0;12322:218:0;1016:6;;-1:-1:-1;;;;;1016:6:0;278:10;1016:22;1008:67;;;;-1:-1:-1;;;1008:67:0;;;;;;;:::i;:::-;12442:4:::1;12422:13;:11;:13::i;:::-;:17;::::0;12438:1:::1;12422:17;:::i;:::-;:24;;;;:::i;:::-;12406:12;:40;;12398:49;;;::::0;::::1;;12458:11;:26:::0;;;12500:32:::1;::::0;160:25:1;;;12500:32:0::1;::::0;148:2:1;133:18;12500:32:0::1;14:177:1::0;12982:481:0;1016:6;;-1:-1:-1;;;;;1016:6:0;278:10;1016:22;1008:67;;;;-1:-1:-1;;;1008:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13156:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;;;:38;;;::::1;;-1:-1:-1::0;;13156:38:0;;::::1;::::0;::::1;::::0;;;13205:19:::1;:28:::0;;;;;:48;;;::::1;;::::0;;::::1;::::0;::::1;::::0;;;13264:15:::1;:24:::0;;;;;;:40;;;::::1;;::::0;::::1;::::0;::::1;::::0;;13320:135;;15959:51:1;;;16026:18;;;16019:50;16085:18;;16078:50;;;;16159:2;16144:18;;16137:50;13320:135:0::1;::::0;15946:3:1;15931:19;13320:135:0::1;;;;;;;12982:481:::0;;;;:::o;12548:207::-;1016:6;;-1:-1:-1;;;;;1016:6:0;278:10;1016:22;1008:67;;;;-1:-1:-1;;;1008:67:0;;;;;;;:::i;:::-;12664:3:::1;12644:13;:11;:13::i;:::-;:17;::::0;12660:1:::1;12644:17;:::i;:::-;:23;;;;:::i;:::-;12630:10;:37;;12622:46;;;::::0;::::1;;12679:9;:22:::0;;;12717:30:::1;::::0;160:25:1;;;12717:30:0::1;::::0;148:2:1;133:18;12717:30:0::1;14:177:1::0;1259:281:0;1016:6;;-1:-1:-1;;;;;1016:6:0;278:10;1016:22;1008:67;;;;-1:-1:-1;;;1008:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1362:22:0;::::1;1340:110;;;::::0;-1:-1:-1;;;1340:110:0;;16400:2:1;1340:110:0::1;::::0;::::1;16382:21:1::0;16439:2;16419:18;;;16412:30;16478:34;16458:18;;;16451:62;-1:-1:-1;;;16529:18:1;;;16522:36;16575:19;;1340:110:0::1;16198:402:1::0;1340:110:0::1;1487:6;::::0;;1466:38:::1;::::0;-1:-1:-1;;;;;1466:38:0;;::::1;::::0;1487:6;::::1;::::0;1466:38:::1;::::0;::::1;1515:6;:17:::0;;-1:-1:-1;;;;;;1515:17:0::1;-1:-1:-1::0;;;;;1515:17:0;;;::::1;::::0;;;::::1;::::0;;1259:281::o;22229:160::-;1016:6;;-1:-1:-1;;;;;1016:6:0;278:10;1016:22;1008:67;;;;-1:-1:-1;;;1008:67:0;;;;;;;:::i;:::-;22323:58:::1;::::0;22287:12:::1;::::0;22331:10:::1;::::0;22355:21:::1;::::0;22287:12;22323:58;22287:12;22323:58;22355:21;22331:10;22323:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9836:374:::0;-1:-1:-1;;;;;9964:20:0;;9956:69;;;;-1:-1:-1;;;9956:69:0;;17017:2:1;9956:69:0;;;16999:21:1;17056:2;17036:18;;;17029:30;17095:34;17075:18;;;17068:62;-1:-1:-1;;;17146:18:1;;;17139:34;17190:19;;9956:69:0;16815:400:1;9956:69:0;-1:-1:-1;;;;;10044:21:0;;10036:68;;;;-1:-1:-1;;;10036:68:0;;17422:2:1;10036:68:0;;;17404:21:1;17461:2;17441:18;;;17434:30;17500:34;17480:18;;;17473:62;-1:-1:-1;;;17551:18:1;;;17544:32;17593:19;;10036:68:0;17220:398:1;10036:68:0;-1:-1:-1;;;;;10117:18:0;;;;;;;:10;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10169:33;;160:25:1;;;10169:33:0;;133:18:1;10169:33:0;;;;;;;9836:374;;;:::o;14478:2527::-;14620:8;;14599:4;;-1:-1:-1;;;14620:8:0;;;;14616:2382;;;14652:41;14667:6;14675:9;14686:6;14652:14;:41::i;:::-;14645:48;;;;14616:2382;-1:-1:-1;;;;;14752:20:0;;14726:119;;;;-1:-1:-1;;;14726:119:0;;17825:2:1;14726:119:0;;;17807:21:1;17864:2;17844:18;;;17837:30;17903:34;17883:18;;;17876:62;-1:-1:-1;;;17954:18:1;;;17947:35;17999:19;;14726:119:0;17623:401:1;14726:119:0;-1:-1:-1;;;;;14886:23:0;;14860:120;;;;-1:-1:-1;;;14860:120:0;;18231:2:1;14860:120:0;;;18213:21:1;18270:2;18250:18;;;18243:30;18309:34;18289:18;;;18282:62;-1:-1:-1;;;18360:18:1;;;18353:33;18403:19;;14860:120:0;18029:399:1;14860:120:0;-1:-1:-1;;;;;15022:20:0;;;;;;:12;:20;;;;;;;;15021:21;:49;;;;-1:-1:-1;;;;;;15047:23:0;;;;;;:12;:23;;;;;;;;15046:24;15021:49;14995:142;;;;-1:-1:-1;;;14995:142:0;;18635:2:1;14995:142:0;;;18617:21:1;18674:2;18654:18;;;18647:30;18713:33;18693:18;;;18686:61;18764:18;;14995:142:0;18433:355:1;14995:142:0;-1:-1:-1;;;;;15159:23:0;;;;;;:15;:23;;;;;;;;15158:24;:55;;;;-1:-1:-1;;;;;;15187:26:0;;;;;;:15;:26;;;;;;;;15186:27;15158:55;15154:505;;;15242:8;;-1:-1:-1;;;15242:8:0;;;;15234:34;;;;-1:-1:-1;;;15234:34:0;;18995:2:1;15234:34:0;;;18977:21:1;19034:2;19014:18;;;19007:30;-1:-1:-1;;;19053:18:1;;;19046:43;19106:18;;15234:34:0;18793:337:1;15234:34:0;-1:-1:-1;;;;;15291:20:0;;;;;;:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;15315:23:0;;;;;;:12;:23;;;;;;;;15291:47;15287:243;;;15407:11;;15397:6;:21;;15363:147;;;;-1:-1:-1;;;15363:147:0;;19337:2:1;15363:147:0;;;19319:21:1;19376:2;19356:18;;;19349:30;19415:34;19395:18;;;19388:62;-1:-1:-1;;;19466:18:1;;;19459:38;19514:19;;15363:147:0;19135:404:1;15363:147:0;15553:17;;-1:-1:-1;;;15553:17:0;;;;15548:96;;15595:29;15606:6;15614:9;15595:10;:29::i;:::-;-1:-1:-1;;;;;15695:20:0;;15675:14;15695:20;;;:12;:20;;;;;;;;15694:21;:66;;;;-1:-1:-1;;;;;;15737:23:0;;;;;;:12;:23;;;;;;;;15736:24;15694:66;15693:114;;;-1:-1:-1;;;;;;15782:25:0;;;;;;:17;:25;;;;;;;;15693:114;:163;;;-1:-1:-1;;;;;;15828:28:0;;;;;;:17;:28;;;;;;;;15693:163;15675:182;;15897:9;15896:10;:35;;;;-1:-1:-1;;;;;;15911:20:0;;;;;;:12;:20;;;;;;;;15910:21;15896:35;:50;;;;-1:-1:-1;15935:11:0;;-1:-1:-1;;;15935:11:0;;;;15896:50;:63;;;;-1:-1:-1;15951:8:0;;-1:-1:-1;;;15951:8:0;;;;15950:9;15896:63;15874:615;;;15994:28;16025:24;16043:4;16025:9;:24::i;:::-;16144:13;;15994:55;;-1:-1:-1;16099:58:0;;;;;16176:298;;16232:15;;-1:-1:-1;;;16232:15:0;;;;16228:57;;;16272:13;;16249:36;;16228:57;16334:13;;:18;;16350:2;16334:18;:::i;:::-;16311:20;:41;16308:87;;;16377:13;;:18;;16393:2;16377:18;:::i;:::-;16354:41;;16308:87;16418:36;16433:20;16418:14;:36::i;:::-;15975:514;;15874:615;-1:-1:-1;;;;;16524:16:0;;;;;;:8;:16;;;;;;:25;;16543:6;;16524:25;:::i;:::-;-1:-1:-1;;;;;16505:16:0;;;;;;:8;:16;;;;;:44;;;;16588:9;:89;;16643:34;16651:6;16659:9;16670:6;16643:7;:34::i;:::-;16588:89;;;16617:6;16588:89;16698:16;;16566:111;;-1:-1:-1;;;;16698:16:0;;;;:51;;;;-1:-1:-1;;;;;;16719:30:0;;;;;;:19;:30;;;;;;;;16718:31;16698:51;16694:132;;;16816:9;;16800:11;16777:20;16787:9;16777;:20::i;:::-;:34;;;;:::i;:::-;16776:49;;16768:58;;;;;;-1:-1:-1;;;;;16865:19:0;;;;;;:8;:19;;;;;;:33;;16887:11;;16865:33;:::i;:::-;-1:-1:-1;;;;;16843:19:0;;;;;;;:8;:19;;;;;;;:55;;;;16920:40;;;;;;;;;;16948:11;160:25:1;;148:2;133:18;;14:177;16920:40:0;;;;;;;;16982:4;16975:11;;;;;;17540:330;-1:-1:-1;;;;;17703:16:0;;17667:4;17703:16;;;:8;:16;;;;;;:25;;17722:6;;17703:25;:::i;:::-;-1:-1:-1;;;;;17684:16:0;;;;;;;:8;:16;;;;;;:44;;;;17761:19;;;;;;;:28;;17783:6;;17761:28;:::i;:::-;-1:-1:-1;;;;;17739:19:0;;;;;;;:8;:19;;;;;;;:50;;;;17805:35;;;;;;;;;;17833:6;160:25:1;;148:2;133:18;;14:177;17805:35:0;;;;;;;;-1:-1:-1;17858:4:0;17540:330;;;;;:::o;17013:519::-;17122:16;;17107:11;;17092:26;;:12;:26;:::i;:::-;17091:47;17087:438;;;17155:17;:24;;-1:-1:-1;;;;17155:24:0;-1:-1:-1;;;17155:24:0;;;17013:519;;:::o;17087:438::-;927:7;954:6;-1:-1:-1;;;;;17201:17:0;;;954:6;;17201:17;;;;:41;;-1:-1:-1;927:7:0;954:6;-1:-1:-1;;;;;17222:20:0;;;954:6;;17222:20;;17201:41;17197:328;;;-1:-1:-1;;;;;17264:20:0;;;;;;:12;:20;;;;;;;;17263:21;:48;;;;-1:-1:-1;;;;;;17288:23:0;;17306:4;17288:23;;17263:48;17259:116;;;-1:-1:-1;;;;;17332:20:0;;;;;;:12;:20;;;;;:27;;-1:-1:-1;;17332:27:0;17355:4;17332:27;;;17259:116;-1:-1:-1;;;;;17394:23:0;;;;;;:12;:23;;;;;;;;17393:24;:54;;;;-1:-1:-1;;;;;;17421:26:0;;17442:4;17421:26;;17393:54;17389:125;;;-1:-1:-1;;;;;17468:23:0;;;;;;:12;:23;;;;;:30;;-1:-1:-1;;17468:30:0;17494:4;17468:30;;;17389:125;17013:519;;:::o;17878:1064::-;6669:8;:15;;-1:-1:-1;;;;6669:15:0;-1:-1:-1;;;6669:15:0;;;17999:13:::1;::::0;17982:14:::1;::::0;17972:7:::1;::::0;6669:15;;17999:13;17972:24:::1;::::0;::::1;:::i;:::-;:40;;;;:::i;:::-;17950:62;;18023:21;18075:11;18058:13;;18048:7;:23;;;;:::i;:::-;18047:39;;;;:::i;:::-;18023:63;;18097:19;18157:1;18142:11;18131:7;;18121;:17;;;;:::i;:::-;18120:33;;;;:::i;:::-;18119:39;;;;:::i;:::-;18097:61:::0;-1:-1:-1;18169:21:0::1;18217:13:::0;18193:21:::1;18097:61:::0;18193:7;:21:::1;:::i;:::-;:37;;;;:::i;:::-;18169:61;;18243:31;18260:13;18243:16;:31::i;:::-;18397:7;::::0;18312:21:::1;::::0;18287:22:::1;::::0;18397:11:::1;::::0;18407:1:::1;::::0;18397:11:::1;:::i;:::-;18380:13;::::0;18366:27:::1;::::0;:11;:27:::1;:::i;:::-;:43;;;;:::i;:::-;18346:63;;18422:23;18491:1;18478:9;18467:7;;18450:14;:24;;;;:::i;:::-;18449:38;;;;:::i;:::-;18448:44;;;;:::i;:::-;18422:70:::0;-1:-1:-1;18503:23:0::1;18529:32;18422:70:::0;18529:14;:32:::1;:::i;:::-;18503:58:::0;-1:-1:-1;18578:19:0;;18574:113:::1;;18635:22;::::0;18614:61:::1;::::0;-1:-1:-1;;;;;18635:22:0::1;18659:15:::0;18614:20:::1;:61::i;:::-;18703:13;::::0;:17;18699:111:::1;;18737:61;18760:4;18775:6;18784:13;18737:14;:61::i;:::-;;18699:111;18844:1;18826:15;:19;:38;;;;;18863:1;18849:11;:15;18826:38;18822:113;;;18881:42;18894:11;18907:15;18881:12;:42::i;:::-;-1:-1:-1::0;;6707:8:0;:16;;-1:-1:-1;;;;6707:16:0;;;-1:-1:-1;;;;;;;17878:1064:0:o;20115:884::-;20235:7;20255:17;20295:5;20285:6;;20276;:15;;;;:::i;:::-;20275:25;;;;:::i;:::-;-1:-1:-1;;;;;20363:20:0;;20311:19;20363:20;;;:12;:20;;;;;;20255:45;;-1:-1:-1;20341:4:0;;20363:20;;;:47;;-1:-1:-1;;;;;;20387:23:0;;;;;;:12;:23;;;;;;;;20363:47;20359:420;;;20457:5;20440:13;:6;20449:4;20440:13;:::i;:::-;20439:23;;;;:::i;:::-;20427:35;;20359:420;;;-1:-1:-1;;;;;20494:23:0;;;;;;:12;:23;;;;;;;;20490:289;;;20606:12;20588:15;;20574:11;;:29;;;;:::i;:::-;:44;20571:197;;;20668:5;20651:13;:6;20660:4;20651:13;:::i;20571:197::-;20747:5;20736:7;;20727:6;:16;;;;:::i;:::-;20726:26;;;;:::i;:::-;20714:38;;20571:197;20795:13;;20791:163;;-1:-1:-1;;;;;20849:21:0;;;;;;:8;:21;;;;;;:33;;20873:9;;20849:33;:::i;:::-;-1:-1:-1;;;;;20825:21:0;;;;;;;:8;:21;;;;;;;:57;;;;20902:40;;;;;;;;;;20932:9;160:25:1;;148:2;133:18;;14:177;20902:40:0;;;;;;;;20791:163;20973:18;20982:9;20973:6;:18;:::i;:::-;20966:25;20115:884;-1:-1:-1;;;;;;20115:884:0:o;18950:640::-;19100:16;;;19114:1;19100:16;;;;;;;;19076:21;;19100:16;;;;;;;;;;-1:-1:-1;19100:16:0;19076:40;;19145:4;19127;19132:1;19127:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;19127:23:0;;;-1:-1:-1;;;;;19127:23:0;;;;;19171:9;-1:-1:-1;;;;;19171:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19161:4;19166:1;19161:7;;;;;;;;:::i;:::-;;;;;;:26;-1:-1:-1;;;;;19161:26:0;;;-1:-1:-1;;;;;19161:26:0;;;;;19200:56;19217:4;19232:9;19244:11;19200:8;:56::i;:::-;19295:234;;-1:-1:-1;;;19295:234:0;;-1:-1:-1;;;;;19295:9:0;:60;;;;:234;;19370:11;;19396:1;;19440:4;;19467;;19503:15;;19295:234;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19547:35;19564:11;19577:4;19547:35;;;;;;;:::i;14277:193::-;14383:12;14428:9;-1:-1:-1;;;;;14420:23:0;14451:6;14420:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;14277:193:0:o;19598:509::-;19746:56;19763:4;19778:9;19790:11;19746:8;:56::i;:::-;19845:254;;-1:-1:-1;;;19845:254:0;;-1:-1:-1;;;;;19845:9:0;:25;;;;19878:9;;19845:254;;19911:4;;19931:11;;19957:1;;;;20051:6;;20073:15;;19845:254;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19598:509;;:::o;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;1024:131::-;-1:-1:-1;;;;;1099:31:1;;1089:42;;1079:70;;1145:1;1142;1135:12;1079:70;1024:131;:::o;1160:315::-;1228:6;1236;1289:2;1277:9;1268:7;1264:23;1260:32;1257:52;;;1305:1;1302;1295:12;1257:52;1344:9;1331:23;1363:31;1388:5;1363:31;:::i;:::-;1413:5;1465:2;1450:18;;;;1437:32;;-1:-1:-1;;;1160:315:1:o;1672:456::-;1749:6;1757;1765;1818:2;1806:9;1797:7;1793:23;1789:32;1786:52;;;1834:1;1831;1824:12;1786:52;1873:9;1860:23;1892:31;1917:5;1892:31;:::i;:::-;1942:5;-1:-1:-1;1999:2:1;1984:18;;1971:32;2012:33;1971:32;2012:33;:::i;:::-;1672:456;;2064:7;;-1:-1:-1;;;2118:2:1;2103:18;;;;2090:32;;1672:456::o;2133:118::-;2219:5;2212:13;2205:21;2198:5;2195:32;2185:60;;2241:1;2238;2231:12;2256:241;2312:6;2365:2;2353:9;2344:7;2340:23;2336:32;2333:52;;;2381:1;2378;2371:12;2333:52;2420:9;2407:23;2439:28;2461:5;2439:28;:::i;2691:247::-;2750:6;2803:2;2791:9;2782:7;2778:23;2774:32;2771:52;;;2819:1;2816;2809:12;2771:52;2858:9;2845:23;2877:31;2902:5;2877:31;:::i;3151:750::-;3243:6;3251;3259;3312:2;3300:9;3291:7;3287:23;3283:32;3280:52;;;3328:1;3325;3318:12;3280:52;3368:9;3355:23;3397:18;3438:2;3430:6;3427:14;3424:34;;;3454:1;3451;3444:12;3424:34;3492:6;3481:9;3477:22;3467:32;;3537:7;3530:4;3526:2;3522:13;3518:27;3508:55;;3559:1;3556;3549:12;3508:55;3599:2;3586:16;3625:2;3617:6;3614:14;3611:34;;;3641:1;3638;3631:12;3611:34;3696:7;3689:4;3679:6;3676:1;3672:14;3668:2;3664:23;3660:34;3657:47;3654:67;;;3717:1;3714;3707:12;3654:67;3748:4;3740:13;;;;-1:-1:-1;3772:6:1;-1:-1:-1;;3813:20:1;;3800:34;3843:28;3800:34;3843:28;:::i;:::-;3890:5;3880:15;;;3151:750;;;;;:::o;3906:248::-;3974:6;3982;4035:2;4023:9;4014:7;4010:23;4006:32;4003:52;;;4051:1;4048;4041:12;4003:52;-1:-1:-1;;4074:23:1;;;4144:2;4129:18;;;4116:32;;-1:-1:-1;3906:248:1:o;4159:388::-;4227:6;4235;4288:2;4276:9;4267:7;4263:23;4259:32;4256:52;;;4304:1;4301;4294:12;4256:52;4343:9;4330:23;4362:31;4387:5;4362:31;:::i;:::-;4412:5;-1:-1:-1;4469:2:1;4454:18;;4441:32;4482:33;4441:32;4482:33;:::i;:::-;4534:7;4524:17;;;4159:388;;;;;:::o;4552:382::-;4617:6;4625;4678:2;4666:9;4657:7;4653:23;4649:32;4646:52;;;4694:1;4691;4684:12;4646:52;4733:9;4720:23;4752:31;4777:5;4752:31;:::i;:::-;4802:5;-1:-1:-1;4859:2:1;4844:18;;4831:32;4872:30;4831:32;4872:30;:::i;4939:316::-;5016:6;5024;5032;5085:2;5073:9;5064:7;5060:23;5056:32;5053:52;;;5101:1;5098;5091:12;5053:52;-1:-1:-1;;5124:23:1;;;5194:2;5179:18;;5166:32;;-1:-1:-1;5245:2:1;5230:18;;;5217:32;;4939:316;-1:-1:-1;4939:316:1:o;5484:444::-;5555:6;5563;5571;5624:2;5612:9;5603:7;5599:23;5595:32;5592:52;;;5640:1;5637;5630:12;5592:52;5679:9;5666:23;5698:28;5720:5;5698:28;:::i;:::-;5745:5;-1:-1:-1;5797:2:1;5782:18;;5769:32;;-1:-1:-1;5853:2:1;5838:18;;5825:32;5866:30;5825:32;5866:30;:::i;5933:180::-;5992:6;6045:2;6033:9;6024:7;6020:23;6016:32;6013:52;;;6061:1;6058;6051:12;6013:52;-1:-1:-1;6084:23:1;;5933:180;-1:-1:-1;5933:180:1:o;6118:653::-;6195:6;6203;6211;6219;6272:3;6260:9;6251:7;6247:23;6243:33;6240:53;;;6289:1;6286;6279:12;6240:53;6328:9;6315:23;6347:31;6372:5;6347:31;:::i;:::-;6397:5;-1:-1:-1;6454:2:1;6439:18;;6426:32;6467:30;6426:32;6467:30;:::i;:::-;6516:7;-1:-1:-1;6575:2:1;6560:18;;6547:32;6588:30;6547:32;6588:30;:::i;:::-;6637:7;-1:-1:-1;6696:2:1;6681:18;;6668:32;6709:30;6668:32;6709:30;:::i;:::-;6118:653;;;;-1:-1:-1;6118:653:1;;-1:-1:-1;;6118:653:1:o;6776:127::-;6837:10;6832:3;6828:20;6825:1;6818:31;6868:4;6865:1;6858:15;6892:4;6889:1;6882:15;6908:422;6997:1;7040:5;6997:1;7054:270;7075:7;7065:8;7062:21;7054:270;;;7134:4;7130:1;7126:6;7122:17;7116:4;7113:27;7110:53;;;7143:18;;:::i;:::-;7193:7;7183:8;7179:22;7176:55;;;7213:16;;;;7176:55;7292:22;;;;7252:15;;;;7054:270;;;7058:3;6908:422;;;;;:::o;7335:806::-;7384:5;7414:8;7404:80;;-1:-1:-1;7455:1:1;7469:5;;7404:80;7503:4;7493:76;;-1:-1:-1;7540:1:1;7554:5;;7493:76;7585:4;7603:1;7598:59;;;;7671:1;7666:130;;;;7578:218;;7598:59;7628:1;7619:10;;7642:5;;;7666:130;7703:3;7693:8;7690:17;7687:43;;;7710:18;;:::i;:::-;-1:-1:-1;;7766:1:1;7752:16;;7781:5;;7578:218;;7880:2;7870:8;7867:16;7861:3;7855:4;7852:13;7848:36;7842:2;7832:8;7829:16;7824:2;7818:4;7815:12;7811:35;7808:77;7805:159;;;-1:-1:-1;7917:19:1;;;7949:5;;7805:159;7996:34;8021:8;8015:4;7996:34;:::i;:::-;8066:6;8062:1;8058:6;8054:19;8045:7;8042:32;8039:58;;;8077:18;;:::i;:::-;8115:20;;7335:806;-1:-1:-1;;;7335:806:1:o;8146:140::-;8204:5;8233:47;8274:4;8264:8;8260:19;8254:4;8233:47;:::i;8291:168::-;8331:7;8397:1;8393;8389:6;8385:14;8382:1;8379:21;8374:1;8367:9;8360:17;8356:45;8353:71;;;8404:18;;:::i;:::-;-1:-1:-1;8444:9:1;;8291:168::o;8464:125::-;8504:4;8532:1;8529;8526:8;8523:34;;;8537:18;;:::i;:::-;-1:-1:-1;8574:9:1;;8464:125::o;8594:356::-;8796:2;8778:21;;;8815:18;;;8808:30;8874:34;8869:2;8854:18;;8847:62;8941:2;8926:18;;8594:356::o;8955:128::-;8995:3;9026:1;9022:6;9019:1;9016:13;9013:39;;;9032:18;;:::i;:::-;-1:-1:-1;9068:9:1;;8955:128::o;9491:127::-;9552:10;9547:3;9543:20;9540:1;9533:31;9583:4;9580:1;9573:15;9607:4;9604:1;9597:15;9912:135;9951:3;9972:17;;;9969:43;;9992:18;;:::i;:::-;-1:-1:-1;10039:1:1;10028:13;;9912:135::o;10464:251::-;10534:6;10587:2;10575:9;10566:7;10562:23;10558:32;10555:52;;;10603:1;10600;10593:12;10555:52;10635:9;10629:16;10654:31;10679:5;10654:31;:::i;11840:607::-;-1:-1:-1;;;;;12199:15:1;;;12181:34;;12246:2;12231:18;;12224:34;;;;12289:2;12274:18;;12267:34;;;;12332:2;12317:18;;12310:34;;;;12381:15;;;12375:3;12360:19;;12353:44;12161:3;12413:19;;12406:35;;;;12130:3;12115:19;;11840:607::o;12452:306::-;12540:6;12548;12556;12609:2;12597:9;12588:7;12584:23;12580:32;12577:52;;;12625:1;12622;12615:12;12577:52;12654:9;12648:16;12638:26;;12704:2;12693:9;12689:18;12683:25;12673:35;;12748:2;12737:9;12733:18;12727:25;12717:35;;12452:306;;;;;:::o;13539:184::-;13609:6;13662:2;13650:9;13641:7;13637:23;13633:32;13630:52;;;13678:1;13675;13668:12;13630:52;-1:-1:-1;13701:16:1;;13539:184;-1:-1:-1;13539:184:1:o;14007:245::-;14074:6;14127:2;14115:9;14106:7;14102:23;14098:32;14095:52;;;14143:1;14140;14133:12;14095:52;14175:9;14169:16;14194:28;14216:5;14194:28;:::i;15524:217::-;15564:1;15590;15580:132;;15634:10;15629:3;15625:20;15622:1;15615:31;15669:4;15666:1;15659:15;15697:4;15694:1;15687:15;15580:132;-1:-1:-1;15726:9:1;;15524:217::o;19676:461::-;19729:3;19767:5;19761:12;19794:6;19789:3;19782:19;19820:4;19849:2;19844:3;19840:12;19833:19;;19886:2;19879:5;19875:14;19907:1;19917:195;19931:6;19928:1;19925:13;19917:195;;;19996:13;;-1:-1:-1;;;;;19992:39:1;19980:52;;20052:12;;;;20087:15;;;;20028:1;19946:9;19917:195;;;-1:-1:-1;20128:3:1;;19676:461;-1:-1:-1;;;;;19676:461:1:o;20142:582::-;20441:6;20430:9;20423:25;20484:6;20479:2;20468:9;20464:18;20457:34;20527:3;20522:2;20511:9;20507:18;20500:31;20404:4;20548:57;20600:3;20589:9;20585:19;20577:6;20548:57;:::i;:::-;-1:-1:-1;;;;;20641:32:1;;;;20636:2;20621:18;;20614:60;-1:-1:-1;20705:3:1;20690:19;20683:35;20540:65;20142:582;-1:-1:-1;;;20142:582:1:o;20729:332::-;20936:6;20925:9;20918:25;20979:2;20974;20963:9;20959:18;20952:30;20899:4;20999:56;21051:2;21040:9;21036:18;21028:6;20999:56;:::i
Swarm Source
ipfs://d5ec94cf524573f7cc204e95ca4fdb6308f59c02eb9b6b42800bcd86f784f5ef
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.