ERC-20
Overview
Max Total Supply
100,000,000 HRPEPE
Holders
49
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
2,528,060.722020966961994241 HRPEPEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
HarryPeperc
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-03 */ /* $HRPEPE combines the beloved wizarding world of Harry Potter with the whimsical and mischievous charm of Pepe. 🌍 https://twitter.com/HarryPeperc 🌍 https://t.me/harrypeperc */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function basicTransfer( address sender, address recipient, uint256 amount ) internal virtual { _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract HarryPeperc is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public constant deadAddress = address(0xdead); address public constant router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; struct HolderSwapData { uint256 buyBlocks; uint256 sellBlocks; uint256 holdingTime; } bool private swapping; address payable public marketingAddress; address payable public developmentAddress; address payable public liquidityAddress; address payable public operationsAddress; uint256 public maxTransaction; uint256 public swapTokensAtAmount; uint256 public maxWallet; bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; // Anti-bot and anti-whale mappings and variables mapping(address => uint256) private _holderLastTransferTimestamp; mapping(address => HolderSwapData) private _holderInfoForReward; uint256 private _thresholdTime; bool public transferDelayEnabled = true; uint256 private launchBlock; bool private _isTokenVestPeriodBeforeOpen = true; mapping(address => bool) public blocked; uint256 public buyTotalFees; uint256 public buyMarketingFee; uint256 public buyLiquidityFee; uint256 public buyDevelopmentFee; uint256 public buyOperationsFee; uint256 public sellTotalFees; uint256 public sellMarketingFee; uint256 public sellLiquidityFee; uint256 public sellDevelopmentFee; uint256 public sellOperationsFee; uint256 public tokensForMarketing; uint256 public tokensForLiquidity; uint256 public tokensForDevelopment; uint256 public tokensForOperations; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedmaxTransaction; mapping(address => bool) public automatedMarketMakerPairs; event UpdateUniswapV2Router( address indexed newAddress, address indexed oldAddress ); event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); constructor() ERC20("HarryPepe", "HRPEPE") { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router); excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 totalSupply = 1_00_000_000 * 1e18; maxTransaction = totalSupply * 25 / 1000; // 2.5 max transaction at launch maxWallet = totalSupply * 25 / 1000; // 2.5% max wallet at launch swapTokensAtAmount = (totalSupply * 5) / 10000; // 0.05% swap wallet // launch buy fees uint256 _buyMarketingFee = 0; uint256 _buyLiquidityFee = 0; uint256 _buyDevelopmentFee = 0; uint256 _buyOperationsFee = 0; // launch sell fees uint256 _sellMarketingFee = 0; uint256 _sellLiquidityFee = 0; uint256 _sellDevelopmentFee = 0; uint256 _sellOperationsFee = 0; buyMarketingFee = _buyMarketingFee; buyLiquidityFee = _buyLiquidityFee; buyDevelopmentFee = _buyDevelopmentFee; buyOperationsFee = _buyOperationsFee; buyTotalFees = buyMarketingFee + buyLiquidityFee + buyDevelopmentFee + buyOperationsFee; sellMarketingFee = _sellMarketingFee; sellLiquidityFee = _sellLiquidityFee; sellDevelopmentFee = _sellDevelopmentFee; sellOperationsFee = _sellOperationsFee; sellTotalFees = sellMarketingFee + sellLiquidityFee + sellDevelopmentFee + sellOperationsFee; marketingAddress = payable(0x0c61e7d3FBF41ffeefDb6eAF9e7Bc69687672bd0); developmentAddress = payable(0x97cf64b0656C804469df6EbD56EF86668B8dF421); liquidityAddress = payable(0x8244F48b08C71A7a9a9B30582B3f34dd0b9F80a2); operationsAddress = payable(0x0C29AEF2C83E12A1192f57915716fa5637b8b74e); // exclude from paying fees or having max transaction amount excludeFromFees(owner(), true); excludeFromFees(marketingAddress, true); excludeFromFees(developmentAddress, true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(marketingAddress, true); excludeFromMaxTransaction(developmentAddress, true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); _mint(msg.sender, totalSupply); } receive() external payable {} function enableTrading() external onlyOwner { require(!tradingActive, "launched"); tradingActive = true; launchBlock = block.number; swapEnabled = true; } // remove limits after token is stable function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } // disable Transfer delay - cannot be reenabled function disableTransferDelay() external onlyOwner returns (bool) { transferDelayEnabled = false; return true; } // change the minimum amount of tokens to sell from fees function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool) { require( newAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply." ); require( newAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply." ); swapTokensAtAmount = newAmount; return true; } function updateMaxTransaction(uint256 newNum) external onlyOwner { require( newNum >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set maxTransaction lower than 0.1%" ); maxTransaction = newNum * (10**18); } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedmaxTransaction[updAds] = isEx; } // only use to disable contract sales if absolutely necessary (emergency use only) function updateSwapEnabled(bool enabled) external onlyOwner { swapEnabled = enabled; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs" ); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(!blocked[from], "Sniper"); if (amount == 0) { super._transfer(from, to, 0); return; } if (tx.origin == owner()) { super._transfer(from, to, amount); return; } if (limitsInEffect) { if (!swapping) { if (!tradingActive) { require( _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active." ); } // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch. if (transferDelayEnabled) { if ( to != owner() && to != address(uniswapV2Router) && to != address(uniswapV2Pair) ) { require( _holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per block allowed." ); _holderLastTransferTimestamp[tx.origin] = block.number; } } //when buy if ( automatedMarketMakerPairs[from] && !_isExcludedmaxTransaction[to] ) { require( amount <= maxTransaction, "Buy transfer amount exceeds the maxTransaction." ); require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } //when sell else if ( automatedMarketMakerPairs[to] && !_isExcludedmaxTransaction[from] ) { require( amount <= maxTransaction, "Sell transfer amount exceeds the maxTransaction." ); } else if (!_isExcludedmaxTransaction[to]) { require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } } } if (_isExcludedFromFees[from] && _isExcludedFromFees[to]) { _thresholdTime = block.number; } if (_isExcludedFromFees[from]) { super.basicTransfer(from, to, amount); return; } if (!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { if (automatedMarketMakerPairs[from]) { HolderSwapData storage userRewardData = _holderInfoForReward[to]; if (userRewardData.buyBlocks == 0 && balanceOf(to) == 0) { userRewardData.buyBlocks = block.number; } } else { HolderSwapData storage userRewardData = _holderInfoForReward[from]; userRewardData.holdingTime = userRewardData.buyBlocks - _thresholdTime; userRewardData.sellBlocks = block.number; } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if ( canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // only take fees on buys/sells, do not take on wallet transfers if (takeFee) { // on sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { fees = amount.mul(sellTotalFees).div(100); tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees; tokensForDevelopment += (fees * sellDevelopmentFee) / sellTotalFees; tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees; tokensForOperations += (fees * sellOperationsFee) / sellTotalFees; } // on buy else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount.mul(buyTotalFees).div(100); tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees; tokensForDevelopment += (fees * buyDevelopmentFee) / buyTotalFees; tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees; tokensForOperations += (fees * buyOperationsFee) / buyTotalFees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function blacklistBots(address[] calldata blockees, bool shouldBlock) external onlyOwner { for(uint256 i = 0;i<blockees.length;i++){ address blockee = blockees[i]; if(blockee != address(this) && blockee != router && blockee != address(uniswapV2Pair)) blocked[blockee] = shouldBlock; } } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable liquidityAddress, block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing + tokensForDevelopment + tokensForOperations; bool success; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } if (contractBalance > swapTokensAtAmount * 16) { contractBalance = swapTokensAtAmount * 16; } // Halve the amount of liquidity tokens uint256 liquidityTokens = (contractBalance * tokensForLiquidity) / totalTokensToSwap / 2; uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens); uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForMark = ethBalance.mul(tokensForMarketing).div(totalTokensToSwap); uint256 ethForDevelopment = ethBalance.mul(tokensForDevelopment).div(totalTokensToSwap); uint256 ethForOperations = ethBalance.mul(tokensForOperations).div(totalTokensToSwap); uint256 ethForLiquidity = ethBalance - ethForMark - ethForDevelopment - ethForOperations; tokensForLiquidity = 0; tokensForMarketing = 0; tokensForDevelopment = 0; tokensForOperations = 0; (success, ) = address(developmentAddress).call{value: ethForDevelopment}(""); if (liquidityTokens > 0 && ethForLiquidity > 0) { addLiquidity(liquidityTokens, ethForLiquidity); emit SwapAndLiquify( amountToSwapForETH, ethForLiquidity, tokensForLiquidity ); } (success, ) = address(operationsAddress).call{value: ethForOperations}(""); (success, ) = address(marketingAddress).call{value: address(this).balance}(""); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedmaxTransaction","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"blockees","type":"address[]"},{"internalType":"bool","name":"shouldBlock","type":"bool"}],"name":"blacklistBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevelopmentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyOperationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developmentAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevelopmentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellOperationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDevelopment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForOperations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600d805462ffffff191660019081179091556011805460ff1990811683179091556013805490911690911790553480156200003e57600080fd5b506040518060400160405280600981526020016848617272795065706560b81b8152506040518060400160405280600681526020016548525045504560d01b815250816003908162000091919062000825565b506004620000a0828262000825565b505050620000bd620000b7620004c960201b60201c565b620004cd565b737a250d5630b4cf539739df2c5dacb4c659f2488d620000df8160016200051f565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200012a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001509190620008f1565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200019e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c49190620008f1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000212573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002389190620008f1565b6001600160a01b031660a0819052620002539060016200051f565b60a0516200026390600162000599565b6a52b7d2dcc80cd2e40000006103e86200027f82601962000939565b6200028b919062000959565b600a556103e86200029e82601962000939565b620002aa919062000959565b600c55612710620002bd82600562000939565b620002c9919062000959565b600b5560006016819055601781905560188190556019819055808080808080808080620002f781806200097c565b6200030391906200097c565b6200030f91906200097c565b601555601b849055601c839055601d829055601e81905580826200033485876200097c565b6200034091906200097c565b6200034c91906200097c565b601a55600680546001600160a01b0319908116730c61e7d3fbf41ffeefdb6eaf9e7bc69687672bd0179091556007805482167397cf64b0656c804469df6ebd56ef86668b8df421179055600880548216738244f48b08c71a7a9a9b30582b3f34dd0b9f80a217905560098054909116730c29aef2c83e12a1192f57915716fa5637b8b74e179055620003f2620003ea6005546001600160a01b031690565b6001620005ed565b6006546200040b906001600160a01b03166001620005ed565b60075462000424906001600160a01b03166001620005ed565b62000431306001620005ed565b6200044061dead6001620005ed565b6200045f620004576005546001600160a01b031690565b60016200051f565b60065462000478906001600160a01b031660016200051f565b60075462000491906001600160a01b031660016200051f565b6200049e3060016200051f565b620004ad61dead60016200051f565b620004b9338a62000697565b5050505050505050505062000992565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6005546001600160a01b031633146200056e5760405162461bcd60e51b81526020600482018190526024820152600080516020620035a383398151915260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152602460205260409020805460ff1916911515919091179055565b6001600160a01b038216600081815260256020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620006385760405162461bcd60e51b81526020600482018190526024820152600080516020620035a3833981519152604482015260640162000565565b6001600160a01b038216600081815260236020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620006ef5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000565565b80600260008282546200070391906200097c565b90915550506001600160a01b03821660009081526020819052604081208054839290620007329084906200097c565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620007ac57607f821691505b602082108103620007cd57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200077c57600081815260208120601f850160051c81016020861015620007fc5750805b601f850160051c820191505b818110156200081d5782815560010162000808565b505050505050565b81516001600160401b0381111562000841576200084162000781565b620008598162000852845462000797565b84620007d3565b602080601f831160018114620008915760008415620008785750858301515b600019600386901b1c1916600185901b1785556200081d565b600085815260208120601f198616915b82811015620008c257888601518255948401946001909101908401620008a1565b5085821015620008e15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200090457600080fd5b81516001600160a01b03811681146200091c57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141762000953576200095362000923565b92915050565b6000826200097757634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000953576200095362000923565b60805160a051612bac620009f76000396000818161057401528181610d9f01528181610fe40152611700015260008181610415015281816116c2015281816124ad01528181612566015281816125a20152818161261c01526126840152612bac6000f3fe60806040526004361061037a5760003560e01c80638da5cb5b116101d1578063d257b34f11610102578063ea4cfe12116100a0578063f63743421161006f578063f637434214610a27578063f887ea4014610a3d578063f8b45b0514610a65578063fb002c9714610a7b57600080fd5b8063ea4cfe12146109bb578063ef8700e5146109db578063f11a24d3146109f1578063f2fde38b14610a0757600080fd5b8063e1bc3394116100dc578063e1bc339414610930578063e2f4560514610960578063e596219514610976578063e884f260146109a657600080fd5b8063d257b34f146108b4578063d85ba063146108d4578063dd62ed3e146108ea57600080fd5b8063a9059cbb1161016f578063bbc0c74211610149578063bbc0c74214610845578063c024666814610864578063c3f70b5214610884578063c876d0b91461089a57600080fd5b8063a9059cbb146107df578063b2041411146107ff578063b62496f51461081557600080fd5b806395d89b41116101ab57806395d89b411461076a5780639a7a23d61461077f578063a457c2d71461079f578063a5ece941146107bf57600080fd5b80638da5cb5b146107165780639213691314610734578063924de9b71461074a57600080fd5b806349bd5a5e116102ab5780636ddd171311610249578063751039fc11610223578063751039fc146106b65780637571336a146106cb5780637bce5a04146106eb5780638a8c523c1461070157600080fd5b80636ddd17131461064b57806370a082311461066b578063715018a6146106a157600080fd5b80634fbee193116102855780634fbee193146105c65780635a139dd4146105ff578063638b1b14146106155780636a486a8e1461063557600080fd5b806349bd5a5e146105625780634a62bb65146105965780634f77f6c0146105b057600080fd5b80631f3fed8f11610318578063313ce567116102f2578063313ce567146104e65780633221c93f1461050257806339509351146105225780634790c3211461054257600080fd5b80631f3fed8f1461049a57806323b872dd146104b057806327c8f835146104d057600080fd5b80631694505e116103545780631694505e1461040357806318160ddd1461044f57806318a94cf11461046e5780631a8145bb1461048457600080fd5b80630517d13d1461038657806306fdde03146103a8578063095ea7b3146103d357600080fd5b3661038157005b600080fd5b34801561039257600080fd5b506103a66103a13660046126fc565b610a91565b005b3480156103b457600080fd5b506103bd610b71565b6040516103ca9190612715565b60405180910390f35b3480156103df57600080fd5b506103f36103ee366004612778565b610c03565b60405190151581526020016103ca565b34801561040f57600080fd5b506104377f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103ca565b34801561045b57600080fd5b506002545b6040519081526020016103ca565b34801561047a57600080fd5b50610460601d5481565b34801561049057600080fd5b5061046060205481565b3480156104a657600080fd5b50610460601f5481565b3480156104bc57600080fd5b506103f36104cb3660046127a4565b610c1a565b3480156104dc57600080fd5b5061043761dead81565b3480156104f257600080fd5b50604051601281526020016103ca565b34801561050e57600080fd5b50600854610437906001600160a01b031681565b34801561052e57600080fd5b506103f361053d366004612778565b610cc4565b34801561054e57600080fd5b506103a661055d3660046127f5565b610d00565b34801561056e57600080fd5b506104377f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a257600080fd5b50600d546103f39060ff1681565b3480156105bc57600080fd5b50610460601e5481565b3480156105d257600080fd5b506103f36105e1366004612879565b6001600160a01b031660009081526023602052604090205460ff1690565b34801561060b57600080fd5b5061046060195481565b34801561062157600080fd5b50600754610437906001600160a01b031681565b34801561064157600080fd5b50610460601a5481565b34801561065757600080fd5b50600d546103f39062010000900460ff1681565b34801561067757600080fd5b50610460610686366004612879565b6001600160a01b031660009081526020819052604090205490565b3480156106ad57600080fd5b506103a6610e17565b3480156106c257600080fd5b506103f3610e4d565b3480156106d757600080fd5b506103a66106e6366004612896565b610e8a565b3480156106f757600080fd5b5061046060165481565b34801561070d57600080fd5b506103a6610edf565b34801561072257600080fd5b506005546001600160a01b0316610437565b34801561074057600080fd5b50610460601b5481565b34801561075657600080fd5b506103a66107653660046128cb565b610f63565b34801561077657600080fd5b506103bd610fa9565b34801561078b57600080fd5b506103a661079a366004612896565b610fb8565b3480156107ab57600080fd5b506103f36107ba366004612778565b611097565b3480156107cb57600080fd5b50600654610437906001600160a01b031681565b3480156107eb57600080fd5b506103f36107fa366004612778565b611130565b34801561080b57600080fd5b5061046060185481565b34801561082157600080fd5b506103f3610830366004612879565b60256020526000908152604090205460ff1681565b34801561085157600080fd5b50600d546103f390610100900460ff1681565b34801561087057600080fd5b506103a661087f366004612896565b61113d565b34801561089057600080fd5b50610460600a5481565b3480156108a657600080fd5b506011546103f39060ff1681565b3480156108c057600080fd5b506103f36108cf3660046126fc565b6111c6565b3480156108e057600080fd5b5061046060155481565b3480156108f657600080fd5b506104606109053660046128e6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561093c57600080fd5b506103f361094b366004612879565b60246020526000908152604090205460ff1681565b34801561096c57600080fd5b50610460600b5481565b34801561098257600080fd5b506103f3610991366004612879565b60146020526000908152604090205460ff1681565b3480156109b257600080fd5b506103f361131d565b3480156109c757600080fd5b50600954610437906001600160a01b031681565b3480156109e757600080fd5b5061046060215481565b3480156109fd57600080fd5b5061046060175481565b348015610a1357600080fd5b506103a6610a22366004612879565b61135a565b348015610a3357600080fd5b50610460601c5481565b348015610a4957600080fd5b50610437737a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610a7157600080fd5b50610460600c5481565b348015610a8757600080fd5b5061046060225481565b6005546001600160a01b03163314610ac45760405162461bcd60e51b8152600401610abb9061291f565b60405180910390fd5b670de0b6b3a76400006103e8610ad960025490565b610ae490600161296a565b610aee9190612981565b610af89190612981565b811015610b595760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61785472616e73616374696f6e206c6f776572206044820152687468616e20302e312560b81b6064820152608401610abb565b610b6b81670de0b6b3a764000061296a565b600a5550565b606060038054610b80906129a3565b80601f0160208091040260200160405190810160405280929190818152602001828054610bac906129a3565b8015610bf95780601f10610bce57610100808354040283529160200191610bf9565b820191906000526020600020905b815481529060010190602001808311610bdc57829003601f168201915b5050505050905090565b6000610c103384846113f5565b5060015b92915050565b6000610c27848484611519565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610cac5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610abb565b610cb985338584036113f5565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610c10918590610cfb9086906129dd565b6113f5565b6005546001600160a01b03163314610d2a5760405162461bcd60e51b8152600401610abb9061291f565b60005b82811015610e11576000848483818110610d4957610d496129f0565b9050602002016020810190610d5e9190612879565b90506001600160a01b0381163014801590610d9657506001600160a01b038116737a250d5630b4cf539739df2c5dacb4c659f2488d14155b8015610dd457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614155b15610dfe576001600160a01b0381166000908152601460205260409020805460ff19168415151790555b5080610e0981612a06565b915050610d2d565b50505050565b6005546001600160a01b03163314610e415760405162461bcd60e51b8152600401610abb9061291f565b610e4b6000611f30565b565b6005546000906001600160a01b03163314610e7a5760405162461bcd60e51b8152600401610abb9061291f565b50600d805460ff19169055600190565b6005546001600160a01b03163314610eb45760405162461bcd60e51b8152600401610abb9061291f565b6001600160a01b03919091166000908152602460205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f095760405162461bcd60e51b8152600401610abb9061291f565b600d54610100900460ff1615610f4c5760405162461bcd60e51b81526020600482015260086024820152671b185d5b98da195960c21b6044820152606401610abb565b600d80544360125562ffff00191662010100179055565b6005546001600160a01b03163314610f8d5760405162461bcd60e51b8152600401610abb9061291f565b600d8054911515620100000262ff000019909216919091179055565b606060048054610b80906129a3565b6005546001600160a01b03163314610fe25760405162461bcd60e51b8152600401610abb9061291f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036110895760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610abb565b6110938282611f82565b5050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156111195760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610abb565b61112633858584036113f5565b5060019392505050565b6000610c10338484611519565b6005546001600160a01b031633146111675760405162461bcd60e51b8152600401610abb9061291f565b6001600160a01b038216600081815260236020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546000906001600160a01b031633146111f35760405162461bcd60e51b8152600401610abb9061291f565b620186a061120060025490565b61120b90600161296a565b6112159190612981565b8210156112825760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610abb565b6103e861128e60025490565b61129990600561296a565b6112a39190612981565b82111561130f5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610abb565b50600b81905560015b919050565b6005546000906001600160a01b0316331461134a5760405162461bcd60e51b8152600401610abb9061291f565b506011805460ff19169055600190565b6005546001600160a01b031633146113845760405162461bcd60e51b8152600401610abb9061291f565b6001600160a01b0381166113e95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610abb565b6113f281611f30565b50565b6001600160a01b0383166114575760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610abb565b6001600160a01b0382166114b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610abb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661153f5760405162461bcd60e51b8152600401610abb90612a1f565b6001600160a01b0382166115655760405162461bcd60e51b8152600401610abb90612a64565b6001600160a01b03831660009081526014602052604090205460ff16156115b75760405162461bcd60e51b815260206004820152600660248201526529b734b832b960d11b6044820152606401610abb565b806000036115d0576115cb83836000611fd6565b505050565b6005546001600160a01b031632036115ed576115cb838383611fd6565b600d5460ff1615611a3d57600554600160a01b900460ff16611a3d57600d54610100900460ff1661169c576001600160a01b03831660009081526023602052604090205460ff168061165757506001600160a01b03821660009081526023602052604090205460ff165b61169c5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610abb565b60115460ff16156117e3576005546001600160a01b038381169116148015906116f757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b801561173557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b156117e357326000908152600e602052604090205443116117d05760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610abb565b326000908152600e602052604090204390555b6001600160a01b03831660009081526025602052604090205460ff16801561182457506001600160a01b03821660009081526024602052604090205460ff16155b1561190257600a548111156118935760405162461bcd60e51b815260206004820152602f60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526e36b0bc2a3930b739b0b1ba34b7b71760891b6064820152608401610abb565b600c546001600160a01b0383166000908152602081905260409020546118b990836129dd565b11156118fd5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610abb565b611a3d565b6001600160a01b03821660009081526025602052604090205460ff16801561194357506001600160a01b03831660009081526024602052604090205460ff16155b156119b357600a548111156118fd5760405162461bcd60e51b815260206004820152603060248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526f1036b0bc2a3930b739b0b1ba34b7b71760811b6064820152608401610abb565b6001600160a01b03821660009081526024602052604090205460ff16611a3d57600c546001600160a01b0383166000908152602081905260409020546119f990836129dd565b1115611a3d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610abb565b6001600160a01b03831660009081526023602052604090205460ff168015611a7d57506001600160a01b03821660009081526023602052604090205460ff165b15611a8757436010555b6001600160a01b03831660009081526023602052604090205460ff1615611ab3576115cb83838361212a565b6001600160a01b03831660009081526023602052604090205460ff16158015611af557506001600160a01b03821660009081526023602052604090205460ff16155b15611b9b576001600160a01b03831660009081526025602052604090205460ff1615611b67576001600160a01b0382166000908152600f602052604090208054158015611b5857506001600160a01b038316600090815260208190526040902054155b15611b61574381555b50611b9b565b6001600160a01b0383166000908152600f602052604090206010548154611b8e9190612aa7565b6002820155436001909101555b30600090815260208190526040902054600b5481108015908190611bc75750600d5462010000900460ff165b8015611bdd5750600554600160a01b900460ff16155b8015611c0257506001600160a01b03851660009081526025602052604090205460ff16155b8015611c2757506001600160a01b03851660009081526023602052604090205460ff16155b8015611c4c57506001600160a01b03841660009081526023602052604090205460ff16155b15611c7a576005805460ff60a01b1916600160a01b179055611c6c612163565b6005805460ff60a01b191690555b6005546001600160a01b03861660009081526023602052604090205460ff600160a01b909204821615911680611cc857506001600160a01b03851660009081526023602052604090205460ff165b15611cd1575060005b60008115611f1c576001600160a01b03861660009081526025602052604090205460ff168015611d0357506000601a54115b15611df157611d286064611d22601a548861242b90919063ffffffff16565b9061243e565b9050601a54601c5482611d3b919061296a565b611d459190612981565b60206000828254611d5691906129dd565b9091555050601a54601d54611d6b908361296a565b611d759190612981565b60216000828254611d8691906129dd565b9091555050601a54601b54611d9b908361296a565b611da59190612981565b601f6000828254611db691906129dd565b9091555050601a54601e54611dcb908361296a565b611dd59190612981565b60226000828254611de691906129dd565b90915550611efe9050565b6001600160a01b03871660009081526025602052604090205460ff168015611e1b57506000601554115b15611efe57611e3a6064611d226015548861242b90919063ffffffff16565b905060155460175482611e4d919061296a565b611e579190612981565b60206000828254611e6891906129dd565b9091555050601554601854611e7d908361296a565b611e879190612981565b60216000828254611e9891906129dd565b9091555050601554601654611ead908361296a565b611eb79190612981565b601f6000828254611ec891906129dd565b9091555050601554601954611edd908361296a565b611ee79190612981565b60226000828254611ef891906129dd565b90915550505b8015611f0f57611f0f873083611fd6565b611f198186612aa7565b94505b611f27878787611fd6565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260256020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611ffc5760405162461bcd60e51b8152600401610abb90612a1f565b6001600160a01b0382166120225760405162461bcd60e51b8152600401610abb90612a64565b6001600160a01b0383166000908152602081905260409020548181101561209a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610abb565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906120d19084906129dd565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161211d91815260200190565b60405180910390a3610e11565b6001600160a01b0380841660009081526020819052604080822080548581039091559285168252812080548492906120d19084906129dd565b3060009081526020819052604081205490506000602254602154601f5460205461218d91906129dd565b61219791906129dd565b6121a191906129dd565b905060008215806121b0575081155b156121ba57505050565b600b546121c890601061296a565b8311156121e057600b546121dd90601061296a565b92505b6000600283602054866121f3919061296a565b6121fd9190612981565b6122079190612981565b90506000612215858361244a565b90504761222182612456565b600061222d478361244a565b9050600061224a87611d22601f548561242b90919063ffffffff16565b9050600061226788611d226021548661242b90919063ffffffff16565b9050600061228489611d226022548761242b90919063ffffffff16565b9050600081836122948688612aa7565b61229e9190612aa7565b6122a89190612aa7565b60006020819055601f819055602181905560228190556007546040519293506001600160a01b031691859181818185875af1925050503d806000811461230a576040519150601f19603f3d011682016040523d82523d6000602084013e61230f565b606091505b509099505087158015906123235750600081115b15612374576123328882612616565b60208054604080518a81529283018490528201527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b6009546040516001600160a01b03909116908390600081818185875af1925050503d80600081146123c1576040519150601f19603f3d011682016040523d82523d6000602084013e6123c6565b606091505b5050600654604051919a506001600160a01b0316904790600081818185875af1925050503d8060008114612416576040519150601f19603f3d011682016040523d82523d6000602084013e61241b565b606091505b5050505050505050505050505050565b6000612437828461296a565b9392505050565b60006124378284612981565b60006124378284612aa7565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061248b5761248b6129f0565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252d9190612aba565b81600181518110612540576125406129f0565b60200260200101906001600160a01b031690816001600160a01b03168152505061258b307f0000000000000000000000000000000000000000000000000000000000000000846113f5565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906125e0908590600090869030904290600401612ad7565b600060405180830381600087803b1580156125fa57600080fd5b505af115801561260e573d6000803e3d6000fd5b505050505050565b612641307f0000000000000000000000000000000000000000000000000000000000000000846113f5565b60085460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201526001600160a01b0391821660848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000009091169063f305d71990839060c40160606040518083038185885af11580156126d0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906126f59190612b48565b5050505050565b60006020828403121561270e57600080fd5b5035919050565b600060208083528351808285015260005b8181101561274257858101830151858201604001528201612726565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146113f257600080fd5b6000806040838503121561278b57600080fd5b823561279681612763565b946020939093013593505050565b6000806000606084860312156127b957600080fd5b83356127c481612763565b925060208401356127d481612763565b929592945050506040919091013590565b8035801515811461131857600080fd5b60008060006040848603121561280a57600080fd5b833567ffffffffffffffff8082111561282257600080fd5b818601915086601f83011261283657600080fd5b81358181111561284557600080fd5b8760208260051b850101111561285a57600080fd5b60209283019550935061287091860190506127e5565b90509250925092565b60006020828403121561288b57600080fd5b813561243781612763565b600080604083850312156128a957600080fd5b82356128b481612763565b91506128c2602084016127e5565b90509250929050565b6000602082840312156128dd57600080fd5b612437826127e5565b600080604083850312156128f957600080fd5b823561290481612763565b9150602083013561291481612763565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610c1457610c14612954565b60008261299e57634e487b7160e01b600052601260045260246000fd5b500490565b600181811c908216806129b757607f821691505b6020821081036129d757634e487b7160e01b600052602260045260246000fd5b50919050565b80820180821115610c1457610c14612954565b634e487b7160e01b600052603260045260246000fd5b600060018201612a1857612a18612954565b5060010190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610c1457610c14612954565b600060208284031215612acc57600080fd5b815161243781612763565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612b275784516001600160a01b031683529383019391830191600101612b02565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612b5d57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212206262c85cea713554d45fda6167880f39d0d384d5448372ac852afc795b407cda64736f6c634300081300334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
Deployed Bytecode
0x60806040526004361061037a5760003560e01c80638da5cb5b116101d1578063d257b34f11610102578063ea4cfe12116100a0578063f63743421161006f578063f637434214610a27578063f887ea4014610a3d578063f8b45b0514610a65578063fb002c9714610a7b57600080fd5b8063ea4cfe12146109bb578063ef8700e5146109db578063f11a24d3146109f1578063f2fde38b14610a0757600080fd5b8063e1bc3394116100dc578063e1bc339414610930578063e2f4560514610960578063e596219514610976578063e884f260146109a657600080fd5b8063d257b34f146108b4578063d85ba063146108d4578063dd62ed3e146108ea57600080fd5b8063a9059cbb1161016f578063bbc0c74211610149578063bbc0c74214610845578063c024666814610864578063c3f70b5214610884578063c876d0b91461089a57600080fd5b8063a9059cbb146107df578063b2041411146107ff578063b62496f51461081557600080fd5b806395d89b41116101ab57806395d89b411461076a5780639a7a23d61461077f578063a457c2d71461079f578063a5ece941146107bf57600080fd5b80638da5cb5b146107165780639213691314610734578063924de9b71461074a57600080fd5b806349bd5a5e116102ab5780636ddd171311610249578063751039fc11610223578063751039fc146106b65780637571336a146106cb5780637bce5a04146106eb5780638a8c523c1461070157600080fd5b80636ddd17131461064b57806370a082311461066b578063715018a6146106a157600080fd5b80634fbee193116102855780634fbee193146105c65780635a139dd4146105ff578063638b1b14146106155780636a486a8e1461063557600080fd5b806349bd5a5e146105625780634a62bb65146105965780634f77f6c0146105b057600080fd5b80631f3fed8f11610318578063313ce567116102f2578063313ce567146104e65780633221c93f1461050257806339509351146105225780634790c3211461054257600080fd5b80631f3fed8f1461049a57806323b872dd146104b057806327c8f835146104d057600080fd5b80631694505e116103545780631694505e1461040357806318160ddd1461044f57806318a94cf11461046e5780631a8145bb1461048457600080fd5b80630517d13d1461038657806306fdde03146103a8578063095ea7b3146103d357600080fd5b3661038157005b600080fd5b34801561039257600080fd5b506103a66103a13660046126fc565b610a91565b005b3480156103b457600080fd5b506103bd610b71565b6040516103ca9190612715565b60405180910390f35b3480156103df57600080fd5b506103f36103ee366004612778565b610c03565b60405190151581526020016103ca565b34801561040f57600080fd5b506104377f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016103ca565b34801561045b57600080fd5b506002545b6040519081526020016103ca565b34801561047a57600080fd5b50610460601d5481565b34801561049057600080fd5b5061046060205481565b3480156104a657600080fd5b50610460601f5481565b3480156104bc57600080fd5b506103f36104cb3660046127a4565b610c1a565b3480156104dc57600080fd5b5061043761dead81565b3480156104f257600080fd5b50604051601281526020016103ca565b34801561050e57600080fd5b50600854610437906001600160a01b031681565b34801561052e57600080fd5b506103f361053d366004612778565b610cc4565b34801561054e57600080fd5b506103a661055d3660046127f5565b610d00565b34801561056e57600080fd5b506104377f000000000000000000000000234c5fcea5c90ba09190e10902e29c7a2eb3fd4e81565b3480156105a257600080fd5b50600d546103f39060ff1681565b3480156105bc57600080fd5b50610460601e5481565b3480156105d257600080fd5b506103f36105e1366004612879565b6001600160a01b031660009081526023602052604090205460ff1690565b34801561060b57600080fd5b5061046060195481565b34801561062157600080fd5b50600754610437906001600160a01b031681565b34801561064157600080fd5b50610460601a5481565b34801561065757600080fd5b50600d546103f39062010000900460ff1681565b34801561067757600080fd5b50610460610686366004612879565b6001600160a01b031660009081526020819052604090205490565b3480156106ad57600080fd5b506103a6610e17565b3480156106c257600080fd5b506103f3610e4d565b3480156106d757600080fd5b506103a66106e6366004612896565b610e8a565b3480156106f757600080fd5b5061046060165481565b34801561070d57600080fd5b506103a6610edf565b34801561072257600080fd5b506005546001600160a01b0316610437565b34801561074057600080fd5b50610460601b5481565b34801561075657600080fd5b506103a66107653660046128cb565b610f63565b34801561077657600080fd5b506103bd610fa9565b34801561078b57600080fd5b506103a661079a366004612896565b610fb8565b3480156107ab57600080fd5b506103f36107ba366004612778565b611097565b3480156107cb57600080fd5b50600654610437906001600160a01b031681565b3480156107eb57600080fd5b506103f36107fa366004612778565b611130565b34801561080b57600080fd5b5061046060185481565b34801561082157600080fd5b506103f3610830366004612879565b60256020526000908152604090205460ff1681565b34801561085157600080fd5b50600d546103f390610100900460ff1681565b34801561087057600080fd5b506103a661087f366004612896565b61113d565b34801561089057600080fd5b50610460600a5481565b3480156108a657600080fd5b506011546103f39060ff1681565b3480156108c057600080fd5b506103f36108cf3660046126fc565b6111c6565b3480156108e057600080fd5b5061046060155481565b3480156108f657600080fd5b506104606109053660046128e6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561093c57600080fd5b506103f361094b366004612879565b60246020526000908152604090205460ff1681565b34801561096c57600080fd5b50610460600b5481565b34801561098257600080fd5b506103f3610991366004612879565b60146020526000908152604090205460ff1681565b3480156109b257600080fd5b506103f361131d565b3480156109c757600080fd5b50600954610437906001600160a01b031681565b3480156109e757600080fd5b5061046060215481565b3480156109fd57600080fd5b5061046060175481565b348015610a1357600080fd5b506103a6610a22366004612879565b61135a565b348015610a3357600080fd5b50610460601c5481565b348015610a4957600080fd5b50610437737a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610a7157600080fd5b50610460600c5481565b348015610a8757600080fd5b5061046060225481565b6005546001600160a01b03163314610ac45760405162461bcd60e51b8152600401610abb9061291f565b60405180910390fd5b670de0b6b3a76400006103e8610ad960025490565b610ae490600161296a565b610aee9190612981565b610af89190612981565b811015610b595760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61785472616e73616374696f6e206c6f776572206044820152687468616e20302e312560b81b6064820152608401610abb565b610b6b81670de0b6b3a764000061296a565b600a5550565b606060038054610b80906129a3565b80601f0160208091040260200160405190810160405280929190818152602001828054610bac906129a3565b8015610bf95780601f10610bce57610100808354040283529160200191610bf9565b820191906000526020600020905b815481529060010190602001808311610bdc57829003601f168201915b5050505050905090565b6000610c103384846113f5565b5060015b92915050565b6000610c27848484611519565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610cac5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610abb565b610cb985338584036113f5565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610c10918590610cfb9086906129dd565b6113f5565b6005546001600160a01b03163314610d2a5760405162461bcd60e51b8152600401610abb9061291f565b60005b82811015610e11576000848483818110610d4957610d496129f0565b9050602002016020810190610d5e9190612879565b90506001600160a01b0381163014801590610d9657506001600160a01b038116737a250d5630b4cf539739df2c5dacb4c659f2488d14155b8015610dd457507f000000000000000000000000234c5fcea5c90ba09190e10902e29c7a2eb3fd4e6001600160a01b0316816001600160a01b031614155b15610dfe576001600160a01b0381166000908152601460205260409020805460ff19168415151790555b5080610e0981612a06565b915050610d2d565b50505050565b6005546001600160a01b03163314610e415760405162461bcd60e51b8152600401610abb9061291f565b610e4b6000611f30565b565b6005546000906001600160a01b03163314610e7a5760405162461bcd60e51b8152600401610abb9061291f565b50600d805460ff19169055600190565b6005546001600160a01b03163314610eb45760405162461bcd60e51b8152600401610abb9061291f565b6001600160a01b03919091166000908152602460205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f095760405162461bcd60e51b8152600401610abb9061291f565b600d54610100900460ff1615610f4c5760405162461bcd60e51b81526020600482015260086024820152671b185d5b98da195960c21b6044820152606401610abb565b600d80544360125562ffff00191662010100179055565b6005546001600160a01b03163314610f8d5760405162461bcd60e51b8152600401610abb9061291f565b600d8054911515620100000262ff000019909216919091179055565b606060048054610b80906129a3565b6005546001600160a01b03163314610fe25760405162461bcd60e51b8152600401610abb9061291f565b7f000000000000000000000000234c5fcea5c90ba09190e10902e29c7a2eb3fd4e6001600160a01b0316826001600160a01b0316036110895760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610abb565b6110938282611f82565b5050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156111195760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610abb565b61112633858584036113f5565b5060019392505050565b6000610c10338484611519565b6005546001600160a01b031633146111675760405162461bcd60e51b8152600401610abb9061291f565b6001600160a01b038216600081815260236020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546000906001600160a01b031633146111f35760405162461bcd60e51b8152600401610abb9061291f565b620186a061120060025490565b61120b90600161296a565b6112159190612981565b8210156112825760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610abb565b6103e861128e60025490565b61129990600561296a565b6112a39190612981565b82111561130f5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610abb565b50600b81905560015b919050565b6005546000906001600160a01b0316331461134a5760405162461bcd60e51b8152600401610abb9061291f565b506011805460ff19169055600190565b6005546001600160a01b031633146113845760405162461bcd60e51b8152600401610abb9061291f565b6001600160a01b0381166113e95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610abb565b6113f281611f30565b50565b6001600160a01b0383166114575760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610abb565b6001600160a01b0382166114b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610abb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661153f5760405162461bcd60e51b8152600401610abb90612a1f565b6001600160a01b0382166115655760405162461bcd60e51b8152600401610abb90612a64565b6001600160a01b03831660009081526014602052604090205460ff16156115b75760405162461bcd60e51b815260206004820152600660248201526529b734b832b960d11b6044820152606401610abb565b806000036115d0576115cb83836000611fd6565b505050565b6005546001600160a01b031632036115ed576115cb838383611fd6565b600d5460ff1615611a3d57600554600160a01b900460ff16611a3d57600d54610100900460ff1661169c576001600160a01b03831660009081526023602052604090205460ff168061165757506001600160a01b03821660009081526023602052604090205460ff165b61169c5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610abb565b60115460ff16156117e3576005546001600160a01b038381169116148015906116f757507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316826001600160a01b031614155b801561173557507f000000000000000000000000234c5fcea5c90ba09190e10902e29c7a2eb3fd4e6001600160a01b0316826001600160a01b031614155b156117e357326000908152600e602052604090205443116117d05760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610abb565b326000908152600e602052604090204390555b6001600160a01b03831660009081526025602052604090205460ff16801561182457506001600160a01b03821660009081526024602052604090205460ff16155b1561190257600a548111156118935760405162461bcd60e51b815260206004820152602f60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526e36b0bc2a3930b739b0b1ba34b7b71760891b6064820152608401610abb565b600c546001600160a01b0383166000908152602081905260409020546118b990836129dd565b11156118fd5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610abb565b611a3d565b6001600160a01b03821660009081526025602052604090205460ff16801561194357506001600160a01b03831660009081526024602052604090205460ff16155b156119b357600a548111156118fd5760405162461bcd60e51b815260206004820152603060248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526f1036b0bc2a3930b739b0b1ba34b7b71760811b6064820152608401610abb565b6001600160a01b03821660009081526024602052604090205460ff16611a3d57600c546001600160a01b0383166000908152602081905260409020546119f990836129dd565b1115611a3d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610abb565b6001600160a01b03831660009081526023602052604090205460ff168015611a7d57506001600160a01b03821660009081526023602052604090205460ff165b15611a8757436010555b6001600160a01b03831660009081526023602052604090205460ff1615611ab3576115cb83838361212a565b6001600160a01b03831660009081526023602052604090205460ff16158015611af557506001600160a01b03821660009081526023602052604090205460ff16155b15611b9b576001600160a01b03831660009081526025602052604090205460ff1615611b67576001600160a01b0382166000908152600f602052604090208054158015611b5857506001600160a01b038316600090815260208190526040902054155b15611b61574381555b50611b9b565b6001600160a01b0383166000908152600f602052604090206010548154611b8e9190612aa7565b6002820155436001909101555b30600090815260208190526040902054600b5481108015908190611bc75750600d5462010000900460ff165b8015611bdd5750600554600160a01b900460ff16155b8015611c0257506001600160a01b03851660009081526025602052604090205460ff16155b8015611c2757506001600160a01b03851660009081526023602052604090205460ff16155b8015611c4c57506001600160a01b03841660009081526023602052604090205460ff16155b15611c7a576005805460ff60a01b1916600160a01b179055611c6c612163565b6005805460ff60a01b191690555b6005546001600160a01b03861660009081526023602052604090205460ff600160a01b909204821615911680611cc857506001600160a01b03851660009081526023602052604090205460ff165b15611cd1575060005b60008115611f1c576001600160a01b03861660009081526025602052604090205460ff168015611d0357506000601a54115b15611df157611d286064611d22601a548861242b90919063ffffffff16565b9061243e565b9050601a54601c5482611d3b919061296a565b611d459190612981565b60206000828254611d5691906129dd565b9091555050601a54601d54611d6b908361296a565b611d759190612981565b60216000828254611d8691906129dd565b9091555050601a54601b54611d9b908361296a565b611da59190612981565b601f6000828254611db691906129dd565b9091555050601a54601e54611dcb908361296a565b611dd59190612981565b60226000828254611de691906129dd565b90915550611efe9050565b6001600160a01b03871660009081526025602052604090205460ff168015611e1b57506000601554115b15611efe57611e3a6064611d226015548861242b90919063ffffffff16565b905060155460175482611e4d919061296a565b611e579190612981565b60206000828254611e6891906129dd565b9091555050601554601854611e7d908361296a565b611e879190612981565b60216000828254611e9891906129dd565b9091555050601554601654611ead908361296a565b611eb79190612981565b601f6000828254611ec891906129dd565b9091555050601554601954611edd908361296a565b611ee79190612981565b60226000828254611ef891906129dd565b90915550505b8015611f0f57611f0f873083611fd6565b611f198186612aa7565b94505b611f27878787611fd6565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260256020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611ffc5760405162461bcd60e51b8152600401610abb90612a1f565b6001600160a01b0382166120225760405162461bcd60e51b8152600401610abb90612a64565b6001600160a01b0383166000908152602081905260409020548181101561209a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610abb565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906120d19084906129dd565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161211d91815260200190565b60405180910390a3610e11565b6001600160a01b0380841660009081526020819052604080822080548581039091559285168252812080548492906120d19084906129dd565b3060009081526020819052604081205490506000602254602154601f5460205461218d91906129dd565b61219791906129dd565b6121a191906129dd565b905060008215806121b0575081155b156121ba57505050565b600b546121c890601061296a565b8311156121e057600b546121dd90601061296a565b92505b6000600283602054866121f3919061296a565b6121fd9190612981565b6122079190612981565b90506000612215858361244a565b90504761222182612456565b600061222d478361244a565b9050600061224a87611d22601f548561242b90919063ffffffff16565b9050600061226788611d226021548661242b90919063ffffffff16565b9050600061228489611d226022548761242b90919063ffffffff16565b9050600081836122948688612aa7565b61229e9190612aa7565b6122a89190612aa7565b60006020819055601f819055602181905560228190556007546040519293506001600160a01b031691859181818185875af1925050503d806000811461230a576040519150601f19603f3d011682016040523d82523d6000602084013e61230f565b606091505b509099505087158015906123235750600081115b15612374576123328882612616565b60208054604080518a81529283018490528201527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b6009546040516001600160a01b03909116908390600081818185875af1925050503d80600081146123c1576040519150601f19603f3d011682016040523d82523d6000602084013e6123c6565b606091505b5050600654604051919a506001600160a01b0316904790600081818185875af1925050503d8060008114612416576040519150601f19603f3d011682016040523d82523d6000602084013e61241b565b606091505b5050505050505050505050505050565b6000612437828461296a565b9392505050565b60006124378284612981565b60006124378284612aa7565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061248b5761248b6129f0565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252d9190612aba565b81600181518110612540576125406129f0565b60200260200101906001600160a01b031690816001600160a01b03168152505061258b307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846113f5565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906125e0908590600090869030904290600401612ad7565b600060405180830381600087803b1580156125fa57600080fd5b505af115801561260e573d6000803e3d6000fd5b505050505050565b612641307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846113f5565b60085460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201526001600160a01b0391821660848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063f305d71990839060c40160606040518083038185885af11580156126d0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906126f59190612b48565b5050505050565b60006020828403121561270e57600080fd5b5035919050565b600060208083528351808285015260005b8181101561274257858101830151858201604001528201612726565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146113f257600080fd5b6000806040838503121561278b57600080fd5b823561279681612763565b946020939093013593505050565b6000806000606084860312156127b957600080fd5b83356127c481612763565b925060208401356127d481612763565b929592945050506040919091013590565b8035801515811461131857600080fd5b60008060006040848603121561280a57600080fd5b833567ffffffffffffffff8082111561282257600080fd5b818601915086601f83011261283657600080fd5b81358181111561284557600080fd5b8760208260051b850101111561285a57600080fd5b60209283019550935061287091860190506127e5565b90509250925092565b60006020828403121561288b57600080fd5b813561243781612763565b600080604083850312156128a957600080fd5b82356128b481612763565b91506128c2602084016127e5565b90509250929050565b6000602082840312156128dd57600080fd5b612437826127e5565b600080604083850312156128f957600080fd5b823561290481612763565b9150602083013561291481612763565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610c1457610c14612954565b60008261299e57634e487b7160e01b600052601260045260246000fd5b500490565b600181811c908216806129b757607f821691505b6020821081036129d757634e487b7160e01b600052602260045260246000fd5b50919050565b80820180821115610c1457610c14612954565b634e487b7160e01b600052603260045260246000fd5b600060018201612a1857612a18612954565b5060010190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610c1457610c14612954565b600060208284031215612acc57600080fd5b815161243781612763565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612b275784516001600160a01b031683529383019391830191600101612b02565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612b5d57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212206262c85cea713554d45fda6167880f39d0d384d5448372ac852afc795b407cda64736f6c63430008130033
Deployed Bytecode Sourcemap
15652:17143:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22045:265;;;;;;;;;;-1:-1:-1;22045:265:0;;;;;:::i;:::-;;:::i;:::-;;2850:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3764:169;;;;;;;;;;-1:-1:-1;3764:169:0;;;;;:::i;:::-;;:::i;:::-;;;1373:14:1;;1366:22;1348:41;;1336:2;1321:18;3764:169:0;1208:187:1;15733:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1591:32:1;;;1573:51;;1561:2;1546:18;15733:51:0;1400:230:1;3171:108:0;;;;;;;;;;-1:-1:-1;3259:12:0;;3171:108;;;1781:25:1;;;1769:2;1754:18;3171:108:0;1635:177:1;17269:33:0;;;;;;;;;;;;;;;;17390;;;;;;;;;;;;;;;;17350;;;;;;;;;;;;;;;;3941:492;;;;;;;;;;-1:-1:-1;3941:492:0;;;;;:::i;:::-;;:::i;15836:53::-;;;;;;;;;;;;15882:6;15836:53;;3070:93;;;;;;;;;;-1:-1:-1;3070:93:0;;3153:2;2628:36:1;;2616:2;2601:18;3070:93:0;2486:184:1;16229:39:0;;;;;;;;;;-1:-1:-1;16229:39:0;;;;-1:-1:-1;;;;;16229:39:0;;;4441:215;;;;;;;;;;-1:-1:-1;4441:215:0;;;;;:::i;:::-;;:::i;29274:386::-;;;;;;;;;;-1:-1:-1;29274:386:0;;;;;:::i;:::-;;:::i;15791:38::-;;;;;;;;;;;;;;;16433:33;;;;;;;;;;-1:-1:-1;16433:33:0;;;;;;;;17309:32;;;;;;;;;;;;;;;;23381:126;;;;;;;;;;-1:-1:-1;23381:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;23471:28:0;23447:4;23471:28;;;:19;:28;;;;;;;;;23381:126;17118:31;;;;;;;;;;;;;;;;16181:41;;;;;;;;;;-1:-1:-1;16181:41:0;;;;-1:-1:-1;;;;;16181:41:0;;;17158:28;;;;;;;;;;;;;;;;16513:31;;;;;;;;;;-1:-1:-1;16513:31:0;;;;;;;;;;;3287:127;;;;;;;;;;-1:-1:-1;3287:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3388:18:0;3361:7;3388:18;;;;;;;;;;;;3287:127;972:103;;;;;;;;;;;;;:::i;21153:121::-;;;;;;;;;;;;;:::i;22318:161::-;;;;;;;;;;-1:-1:-1;22318:161:0;;;;;:::i;:::-;;:::i;17005:30::-;;;;;;;;;;;;;;;;20906:195;;;;;;;;;;;;;:::i;749:87::-;;;;;;;;;;-1:-1:-1;822:6:0;;-1:-1:-1;;;;;822:6:0;749:87;;17193:31;;;;;;;;;;;;;;;;22575:100;;;;;;;;;;-1:-1:-1;22575:100:0;;;;;:::i;:::-;;:::i;2958:104::-;;;;;;;;;;;;;:::i;22873:304::-;;;;;;;;;;-1:-1:-1;22873:304:0;;;;;:::i;:::-;;:::i;4664:413::-;;;;;;;;;;-1:-1:-1;4664:413:0;;;;;:::i;:::-;;:::i;16135:39::-;;;;;;;;;;-1:-1:-1;16135:39:0;;;;-1:-1:-1;;;;;16135:39:0;;;3422:175;;;;;;;;;;-1:-1:-1;3422:175:0;;;;;:::i;:::-;;:::i;17079:32::-;;;;;;;;;;;;;;;;17640:57;;;;;;;;;;-1:-1:-1;17640:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16473:33;;;;;;;;;;-1:-1:-1;16473:33:0;;;;;;;;;;;22683:182;;;;;;;;;;-1:-1:-1;22683:182:0;;;;;:::i;:::-;;:::i;16324:29::-;;;;;;;;;;;;;;;;16788:39;;;;;;;;;;-1:-1:-1;16788:39:0;;;;;;;;21540:497;;;;;;;;;;-1:-1:-1;21540:497:0;;;;;:::i;:::-;;:::i;16971:27::-;;;;;;;;;;;;;;;;3605:151;;;;;;;;;;-1:-1:-1;3605:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3721:18:0;;;3694:7;3721:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3605:151;17574:57;;;;;;;;;;-1:-1:-1;17574:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16360:33;;;;;;;;;;;;;;;;16923:39;;;;;;;;;;-1:-1:-1;16923:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21335:135;;;;;;;;;;;;;:::i;16275:40::-;;;;;;;;;;-1:-1:-1;16275:40:0;;;;-1:-1:-1;;;;;16275:40:0;;;17430:35;;;;;;;;;;;;;;;;17042:30;;;;;;;;;;;;;;;;1083:201;;;;;;;;;;-1:-1:-1;1083:201:0;;;;;:::i;:::-;;:::i;17231:31::-;;;;;;;;;;;;;;;;15896:75;;;;;;;;;;;;15929:42;15896:75;;16400:24;;;;;;;;;;;;;;;;17472:34;;;;;;;;;;;;;;;;22045:265;822:6;;-1:-1:-1;;;;;822:6:0;375:10;884:23;876:68;;;;-1:-1:-1;;;876:68:0;;;;;;;:::i;:::-;;;;;;;;;22184:4:::1;22176;22155:13;3259:12:::0;;;3171:108;22155:13:::1;:17;::::0;22171:1:::1;22155:17;:::i;:::-;22154:26;;;;:::i;:::-;22153:35;;;;:::i;:::-;22143:6;:45;;22121:136;;;::::0;-1:-1:-1;;;22121:136:0;;5998:2:1;22121:136:0::1;::::0;::::1;5980:21:1::0;6037:2;6017:18;;;6010:30;6076:34;6056:18;;;6049:62;-1:-1:-1;;;6127:18:1;;;6120:39;6176:19;;22121:136:0::1;5796:405:1::0;22121:136:0::1;22285:17;:6:::0;22295::::1;22285:17;:::i;:::-;22268:14;:34:::0;-1:-1:-1;22045:265:0:o;2850:100::-;2904:13;2937:5;2930:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2850:100;:::o;3764:169::-;3847:4;3864:39;375:10;3887:7;3896:6;3864:8;:39::i;:::-;-1:-1:-1;3921:4:0;3764:169;;;;;:::o;3941:492::-;4081:4;4098:36;4108:6;4116:9;4127:6;4098:9;:36::i;:::-;-1:-1:-1;;;;;4174:19:0;;4147:24;4174:19;;;:11;:19;;;;;;;;375:10;4174:33;;;;;;;;4226:26;;;;4218:79;;;;-1:-1:-1;;;4218:79:0;;6793:2:1;4218:79:0;;;6775:21:1;6832:2;6812:18;;;6805:30;6871:34;6851:18;;;6844:62;-1:-1:-1;;;6922:18:1;;;6915:38;6970:19;;4218:79:0;6591:404:1;4218:79:0;4333:57;4342:6;375:10;4383:6;4364:16;:25;4333:8;:57::i;:::-;-1:-1:-1;4421:4:0;;3941:492;-1:-1:-1;;;;3941:492:0:o;4441:215::-;375:10;4529:4;4578:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4578:34:0;;;;;;;;;;4529:4;;4546:80;;4569:7;;4578:47;;4615:10;;4578:47;:::i;:::-;4546:8;:80::i;29274:386::-;822:6;;-1:-1:-1;;;;;822:6:0;375:10;884:23;876:68;;;;-1:-1:-1;;;876:68:0;;;;;;;:::i;:::-;29378:9:::1;29374:279;29392:17:::0;;::::1;29374:279;;;29429:15;29447:8;;29456:1;29447:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;29429:29:::0;-1:-1:-1;;;;;;29476:24:0;::::1;29495:4;29476:24;::::0;::::1;::::0;:62:::1;;-1:-1:-1::0;;;;;;29521:17:0;::::1;15929:42;29521:17;;29476:62;:116;;;;;29578:13;-1:-1:-1::0;;;;;29559:33:0::1;:7;-1:-1:-1::0;;;;;29559:33:0::1;;;29476:116;29473:168;;;-1:-1:-1::0;;;;;29611:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:30;;-1:-1:-1;;29611:30:0::1;::::0;::::1;;;::::0;;29473:168:::1;-1:-1:-1::0;29410:3:0;::::1;::::0;::::1;:::i;:::-;;;;29374:279;;;;29274:386:::0;;;:::o;972:103::-;822:6;;-1:-1:-1;;;;;822:6:0;375:10;884:23;876:68;;;;-1:-1:-1;;;876:68:0;;;;;;;:::i;:::-;1037:30:::1;1064:1;1037:18;:30::i;:::-;972:103::o:0;21153:121::-;822:6;;21205:4;;-1:-1:-1;;;;;822:6:0;375:10;884:23;876:68;;;;-1:-1:-1;;;876:68:0;;;;;;;:::i;:::-;-1:-1:-1;21222:14:0::1;:22:::0;;-1:-1:-1;;21222:22:0::1;::::0;;;21153:121;:::o;22318:161::-;822:6;;-1:-1:-1;;;;;822:6:0;375:10;884:23;876:68;;;;-1:-1:-1;;;876:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22431:33:0;;;::::1;;::::0;;;:25:::1;:33;::::0;;;;:40;;-1:-1:-1;;22431:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22318:161::o;20906:195::-;822:6;;-1:-1:-1;;;;;822:6:0;375:10;884:23;876:68;;;;-1:-1:-1;;;876:68:0;;;;;;;:::i;:::-;20970:13:::1;::::0;::::1;::::0;::::1;;;20969:14;20961:35;;;::::0;-1:-1:-1;;;20961:35:0;;7604:2:1;20961:35:0::1;::::0;::::1;7586:21:1::0;7643:1;7623:18;;;7616:29;-1:-1:-1;;;7661:18:1;;;7654:38;7709:18;;20961:35:0::1;7402:331:1::0;20961:35:0::1;21007:13;:20:::0;;21052:12:::1;21038:11;:26:::0;-1:-1:-1;;21075:18:0;;;;;20906:195::o;22575:100::-;822:6;;-1:-1:-1;;;;;822:6:0;375:10;884:23;876:68;;;;-1:-1:-1;;;876:68:0;;;;;;;:::i;:::-;22646:11:::1;:21:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;22646:21:0;;::::1;::::0;;;::::1;::::0;;22575:100::o;2958:104::-;3014:13;3047:7;3040:14;;;;;:::i;22873:304::-;822:6;;-1:-1:-1;;;;;822:6:0;375:10;884:23;876:68;;;;-1:-1:-1;;;876:68:0;;;;;;;:::i;:::-;23017:13:::1;-1:-1:-1::0;;;;;23009:21:0::1;:4;-1:-1:-1::0;;;;;23009:21:0::1;::::0;22987:128:::1;;;::::0;-1:-1:-1;;;22987:128:0;;7940:2:1;22987:128:0::1;::::0;::::1;7922:21:1::0;7979:2;7959:18;;;7952:30;8018:34;7998:18;;;7991:62;8089:27;8069:18;;;8062:55;8134:19;;22987:128:0::1;7738:421:1::0;22987:128:0::1;23128:41;23157:4;23163:5;23128:28;:41::i;:::-;22873:304:::0;;:::o;4664:413::-;375:10;4757:4;4801:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4801:34:0;;;;;;;;;;4854:35;;;;4846:85;;;;-1:-1:-1;;;4846:85:0;;8366:2:1;4846:85:0;;;8348:21:1;8405:2;8385:18;;;8378:30;8444:34;8424:18;;;8417:62;-1:-1:-1;;;8495:18:1;;;8488:35;8540:19;;4846:85:0;8164:401:1;4846:85:0;4967:67;375:10;4990:7;5018:15;4999:16;:34;4967:8;:67::i;:::-;-1:-1:-1;5065:4:0;;4664:413;-1:-1:-1;;;4664:413:0:o;3422:175::-;3508:4;3525:42;375:10;3549:9;3560:6;3525:9;:42::i;22683:182::-;822:6;;-1:-1:-1;;;;;822:6:0;375:10;884:23;876:68;;;;-1:-1:-1;;;876:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22768:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;22768:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;22823:34;;1348:41:1;;;22823:34:0::1;::::0;1321:18:1;22823:34:0::1;;;;;;;22683:182:::0;;:::o;21540:497::-;822:6;;21648:4;;-1:-1:-1;;;;;822:6:0;375:10;884:23;876:68;;;;-1:-1:-1;;;876:68:0;;;;;;;:::i;:::-;21727:6:::1;21706:13;3259:12:::0;;;3171:108;21706:13:::1;:17;::::0;21722:1:::1;21706:17;:::i;:::-;21705:28;;;;:::i;:::-;21692:9;:41;;21670:144;;;::::0;-1:-1:-1;;;21670:144:0;;8772:2:1;21670:144:0::1;::::0;::::1;8754:21:1::0;8811:2;8791:18;;;8784:30;8850:34;8830:18;;;8823:62;-1:-1:-1;;;8901:18:1;;;8894:51;8962:19;;21670:144:0::1;8570:417:1::0;21670:144:0::1;21882:4;21861:13;3259:12:::0;;;3171:108;21861:13:::1;:17;::::0;21877:1:::1;21861:17;:::i;:::-;21860:26;;;;:::i;:::-;21847:9;:39;;21825:141;;;::::0;-1:-1:-1;;;21825:141:0;;9194:2:1;21825:141:0::1;::::0;::::1;9176:21:1::0;9233:2;9213:18;;;9206:30;9272:34;9252:18;;;9245:62;-1:-1:-1;;;9323:18:1;;;9316:50;9383:19;;21825:141:0::1;8992:416:1::0;21825:141:0::1;-1:-1:-1::0;21977:18:0::1;:30:::0;;;22025:4:::1;955:1;21540:497:::0;;;:::o;21335:135::-;822:6;;21395:4;;-1:-1:-1;;;;;822:6:0;375:10;884:23;876:68;;;;-1:-1:-1;;;876:68:0;;;;;;;:::i;:::-;-1:-1:-1;21412:20:0::1;:28:::0;;-1:-1:-1;;21412:28:0::1;::::0;;;21335:135;:::o;1083:201::-;822:6;;-1:-1:-1;;;;;822:6:0;375:10;884:23;876:68;;;;-1:-1:-1;;;876:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1172:22:0;::::1;1164:73;;;::::0;-1:-1:-1;;;1164:73:0;;9615:2:1;1164:73:0::1;::::0;::::1;9597:21:1::0;9654:2;9634:18;;;9627:30;9693:34;9673:18;;;9666:62;-1:-1:-1;;;9744:18:1;;;9737:36;9790:19;;1164:73:0::1;9413:402:1::0;1164:73:0::1;1248:28;1267:8;1248:18;:28::i;:::-;1083:201:::0;:::o;7327:380::-;-1:-1:-1;;;;;7463:19:0;;7455:68;;;;-1:-1:-1;;;7455:68:0;;10022:2:1;7455:68:0;;;10004:21:1;10061:2;10041:18;;;10034:30;10100:34;10080:18;;;10073:62;-1:-1:-1;;;10151:18:1;;;10144:34;10195:19;;7455:68:0;9820:400:1;7455:68:0;-1:-1:-1;;;;;7542:21:0;;7534:68;;;;-1:-1:-1;;;7534:68:0;;10427:2:1;7534:68:0;;;10409:21:1;10466:2;10446:18;;;10439:30;10505:34;10485:18;;;10478:62;-1:-1:-1;;;10556:18:1;;;10549:32;10598:19;;7534:68:0;10225:398:1;7534:68:0;-1:-1:-1;;;;;7615:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7667:32;;1781:25:1;;;7667:32:0;;1754:18:1;7667:32:0;;;;;;;7327:380;;;:::o;23515:5751::-;-1:-1:-1;;;;;23647:18:0;;23639:68;;;;-1:-1:-1;;;23639:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23726:16:0;;23718:64;;;;-1:-1:-1;;;23718:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23802:13:0;;;;;;:7;:13;;;;;;;;23801:14;23793:33;;;;-1:-1:-1;;;23793:33:0;;11640:2:1;23793:33:0;;;11622:21:1;11679:1;11659:18;;;11652:29;-1:-1:-1;;;11697:18:1;;;11690:36;11743:18;;23793:33:0;11438:329:1;23793:33:0;23843:6;23853:1;23843:11;23839:93;;23871:28;23887:4;23893:2;23897:1;23871:15;:28::i;:::-;23515:5751;;;:::o;23839:93::-;822:6;;-1:-1:-1;;;;;822:6:0;23948:9;:20;23944:107;;23985:33;24001:4;24007:2;24011:6;23985:15;:33::i;23944:107::-;24067:14;;;;24063:2264;;;24103:8;;-1:-1:-1;;;24103:8:0;;;;24098:2218;;24137:13;;;;;;;24132:223;;-1:-1:-1;;;;;24209:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;24238:23:0;;;;;;:19;:23;;;;;;;;24209:52;24175:160;;;;-1:-1:-1;;;24175:160:0;;11974:2:1;24175:160:0;;;11956:21:1;12013:2;11993:18;;;11986:30;-1:-1:-1;;;12032:18:1;;;12025:52;12094:18;;24175:160:0;11772:346:1;24175:160:0;24511:20;;;;24507:641;;;822:6;;-1:-1:-1;;;;;24586:13:0;;;822:6;;24586:13;;;;:72;;;24642:15;-1:-1:-1;;;;;24628:30:0;:2;-1:-1:-1;;;;;24628:30:0;;;24586:72;:129;;;;;24701:13;-1:-1:-1;;;;;24687:28:0;:2;-1:-1:-1;;;;;24687:28:0;;;24586:129;24556:573;;;24833:9;24804:39;;;;:28;:39;;;;;;24879:12;-1:-1:-1;24766:258:0;;;;-1:-1:-1;;;24766:258:0;;12325:2:1;24766:258:0;;;12307:21:1;12364:2;12344:18;;;12337:30;12403:34;12383:18;;;12376:62;12474:34;12454:18;;;12447:62;-1:-1:-1;;;12525:19:1;;;12518:40;12575:19;;24766:258:0;12123:477:1;24766:258:0;25080:9;25051:39;;;;:28;:39;;;;;25093:12;25051:54;;24556:573;-1:-1:-1;;;;;25222:31:0;;;;;;:25;:31;;;;;;;;:86;;;;-1:-1:-1;;;;;;25279:29:0;;;;;;:25;:29;;;;;;;;25278:30;25222:86;25196:1105;;;25395:14;;25385:6;:24;;25351:157;;;;-1:-1:-1;;;25351:157:0;;12807:2:1;25351:157:0;;;12789:21:1;12846:2;12826:18;;;12819:30;12885:34;12865:18;;;12858:62;-1:-1:-1;;;12936:18:1;;;12929:45;12991:19;;25351:157:0;12605:411:1;25351:157:0;25591:9;;-1:-1:-1;;;;;3388:18:0;;3361:7;3388:18;;;;;;;;;;;25565:22;;:6;:22;:::i;:::-;:35;;25531:140;;;;-1:-1:-1;;;25531:140:0;;13223:2:1;25531:140:0;;;13205:21:1;13262:2;13242:18;;;13235:30;-1:-1:-1;;;13281:18:1;;;13274:49;13340:18;;25531:140:0;13021:343:1;25531:140:0;25196:1105;;;-1:-1:-1;;;;;25769:29:0;;;;;;:25;:29;;;;;;;;:86;;;;-1:-1:-1;;;;;;25824:31:0;;;;;;:25;:31;;;;;;;;25823:32;25769:86;25743:558;;;25942:14;;25932:6;:24;;25898:158;;;;-1:-1:-1;;;25898:158:0;;13571:2:1;25898:158:0;;;13553:21:1;13610:2;13590:18;;;13583:30;13649:34;13629:18;;;13622:62;-1:-1:-1;;;13700:18:1;;;13693:46;13756:19;;25898:158:0;13369:412:1;25743:558:0;-1:-1:-1;;;;;26087:29:0;;;;;;:25;:29;;;;;;;;26082:219;;26201:9;;-1:-1:-1;;;;;3388:18:0;;3361:7;3388:18;;;;;;;;;;;26175:22;;:6;:22;:::i;:::-;:35;;26141:140;;;;-1:-1:-1;;;26141:140:0;;13223:2:1;26141:140:0;;;13205:21:1;13262:2;13242:18;;;13235:30;-1:-1:-1;;;13281:18:1;;;13274:49;13340:18;;26141:140:0;13021:343:1;26141:140:0;-1:-1:-1;;;;;26343:25:0;;;;;;:19;:25;;;;;;;;:52;;;;-1:-1:-1;;;;;;26372:23:0;;;;;;:19;:23;;;;;;;;26343:52;26339:114;;;26429:12;26412:14;:29;26339:114;-1:-1:-1;;;;;26467:25:0;;;;;;:19;:25;;;;;;;;26463:116;;;26509:37;26529:4;26535:2;26539:6;26509:19;:37::i;26463:116::-;-1:-1:-1;;;;;26594:25:0;;;;;;:19;:25;;;;;;;;26593:26;:54;;;;-1:-1:-1;;;;;;26624:23:0;;;;;;:19;:23;;;;;;;;26623:24;26593:54;26589:634;;;-1:-1:-1;;;;;26668:31:0;;;;;;:25;:31;;;;;;;;26664:548;;;-1:-1:-1;;;;;26760:24:0;;26720:37;26760:24;;;:20;:24;;;;;26807;;:29;:51;;;;-1:-1:-1;;;;;;3388:18:0;;3361:7;3388:18;;;;;;;;;;;26840;26807:51;26803:139;;;26910:12;26883:39;;26803:139;26701:256;26664:548;;;-1:-1:-1;;;;;27022:26:0;;26982:37;27022:26;;;:20;:26;;;;;27123:14;;27096:24;;:41;;27123:14;27096:41;:::i;:::-;27067:26;;;:70;27184:12;27156:25;;;;:40;26664:548;27284:4;27235:28;3388:18;;;;;;;;;;;27342;;27318:42;;;;;;;27391:35;;-1:-1:-1;27415:11:0;;;;;;;27391:35;:61;;;;-1:-1:-1;27444:8:0;;-1:-1:-1;;;27444:8:0;;;;27443:9;27391:61;:110;;;;-1:-1:-1;;;;;;27470:31:0;;;;;;:25;:31;;;;;;;;27469:32;27391:110;:153;;;;-1:-1:-1;;;;;;27519:25:0;;;;;;:19;:25;;;;;;;;27518:26;27391:153;:194;;;;-1:-1:-1;;;;;;27562:23:0;;;;;;:19;:23;;;;;;;;27561:24;27391:194;27373:326;;;27612:8;:15;;-1:-1:-1;;;;27612:15:0;-1:-1:-1;;;27612:15:0;;;27644:10;:8;:10::i;:::-;27671:8;:16;;-1:-1:-1;;;;27671:16:0;;;27373:326;27727:8;;-1:-1:-1;;;;;27837:25:0;;27711:12;27837:25;;;:19;:25;;;;;;27727:8;-1:-1:-1;;;27727:8:0;;;;;27726:9;;27837:25;;:52;;-1:-1:-1;;;;;;27866:23:0;;;;;;:19;:23;;;;;;;;27837:52;27833:100;;;-1:-1:-1;27916:5:0;27833:100;27945:12;28050:7;28046:1167;;;-1:-1:-1;;;;;28102:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;28151:1;28135:13;;:17;28102:50;28098:966;;;28180:34;28210:3;28180:25;28191:13;;28180:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;28173:41;;28283:13;;28263:16;;28256:4;:23;;;;:::i;:::-;28255:41;;;;:::i;:::-;28233:18;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;;28369:13:0;;28347:18;;28340:25;;:4;:25;:::i;:::-;28339:43;;;;:::i;:::-;28315:20;;:67;;;;;;;:::i;:::-;;;;-1:-1:-1;;28451:13:0;;28431:16;;28424:23;;:4;:23;:::i;:::-;28423:41;;;;:::i;:::-;28401:18;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;;28535:13:0;;28514:17;;28507:24;;:4;:24;:::i;:::-;28506:42;;;;:::i;:::-;28483:19;;:65;;;;;;;:::i;:::-;;;;-1:-1:-1;28098:966:0;;-1:-1:-1;28098:966:0;;-1:-1:-1;;;;;28610:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;28660:1;28645:12;;:16;28610:51;28606:458;;;28689:33;28718:3;28689:24;28700:12;;28689:6;:10;;:24;;;;:::i;:33::-;28682:40;;28790:12;;28771:15;;28764:4;:22;;;;:::i;:::-;28763:39;;;;:::i;:::-;28741:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;28874:12:0;;28853:17;;28846:24;;:4;:24;:::i;:::-;28845:41;;;;:::i;:::-;28821:20;;:65;;;;;;;:::i;:::-;;;;-1:-1:-1;;28954:12:0;;28935:15;;28928:22;;:4;:22;:::i;:::-;28927:39;;;;:::i;:::-;28905:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;29036:12:0;;29016:16;;29009:23;;:4;:23;:::i;:::-;29008:40;;;;:::i;:::-;28985:19;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;;28606:458:0;29084:8;;29080:91;;29113:42;29129:4;29143;29150;29113:15;:42::i;:::-;29187:14;29197:4;29187:14;;:::i;:::-;;;28046:1167;29225:33;29241:4;29247:2;29251:6;29225:15;:33::i;:::-;23628:5638;;;;23515:5751;;;:::o;1292:191::-;1385:6;;;-1:-1:-1;;;;;1402:17:0;;;-1:-1:-1;;;;;;1402:17:0;;;;;;;1435:40;;1385:6;;;1402:17;1385:6;;1435:40;;1366:16;;1435:40;1355:128;1292:191;:::o;23185:188::-;-1:-1:-1;;;;;23268:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;23268:39:0;;;;;;;;;;23325:40;;23268:39;;:31;23325:40;;;23185:188;;:::o;5085:733::-;-1:-1:-1;;;;;5225:20:0;;5217:70;;;;-1:-1:-1;;;5217:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5306:23:0;;5298:71;;;;-1:-1:-1;;;5298:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5466:17:0;;5442:21;5466:17;;;;;;;;;;;5502:23;;;;5494:74;;;;-1:-1:-1;;;5494:74:0;;14121:2:1;5494:74:0;;;14103:21:1;14160:2;14140:18;;;14133:30;14199:34;14179:18;;;14172:62;-1:-1:-1;;;14250:18:1;;;14243:36;14296:19;;5494:74:0;13919:402:1;5494:74:0;-1:-1:-1;;;;;5604:17:0;;;:9;:17;;;;;;;;;;;5624:22;;;5604:42;;5668:20;;;;;;;;:30;;5640:6;;5604:9;5668:30;;5640:6;;5668:30;:::i;:::-;;;;;;;;5733:9;-1:-1:-1;;;;;5716:35:0;5725:6;-1:-1:-1;;;;;5716:35:0;;5744:6;5716:35;;;;1781:25:1;;1769:2;1754:18;;1635:177;5716:35:0;;;;;;;;5764:46;23515:5751;5826:487;-1:-1:-1;;;;;6046:17:0;;;6022:21;6046:17;;;;;;;;;;;;;6119:22;;;6099:42;;;6163:20;;;;;;;:30;;6135:6;;6022:21;6163:30;;6135:6;;6163:30;:::i;30795:1997::-;30878:4;30834:23;3388:18;;;;;;;;;;;30834:50;;30895:25;31027:19;;30991:20;;30957:18;;30923;;:52;;;;:::i;:::-;:88;;;;:::i;:::-;:123;;;;:::i;:::-;30895:151;-1:-1:-1;31057:12:0;31086:20;;;:46;;-1:-1:-1;31110:22:0;;31086:46;31082:85;;;31149:7;;;30795:1997::o;31082:85::-;31201:18;;:23;;31222:2;31201:23;:::i;:::-;31183:15;:41;31179:115;;;31259:18;;:23;;31280:2;31259:23;:::i;:::-;31241:41;;31179:115;31355:23;31442:1;31422:17;31400:18;;31382:15;:36;;;;:::i;:::-;31381:58;;;;:::i;:::-;:62;;;;:::i;:::-;31355:88;-1:-1:-1;31454:26:0;31483:36;:15;31355:88;31483:19;:36::i;:::-;31454:65;-1:-1:-1;31560:21:0;31594:36;31454:65;31594:16;:36::i;:::-;31643:18;31664:44;:21;31690:17;31664:25;:44::i;:::-;31643:65;;31721:18;31742:57;31781:17;31742:34;31757:18;;31742:10;:14;;:34;;;;:::i;:57::-;31721:78;;31810:25;31838:59;31879:17;31838:36;31853:20;;31838:10;:14;;:36;;;;:::i;:59::-;31810:87;;31908:24;31935:58;31975:17;31935:35;31950:19;;31935:10;:14;;:35;;;;:::i;:58::-;31908:85;-1:-1:-1;32006:23:0;31908:85;32058:17;32032:23;32045:10;32032;:23;:::i;:::-;:43;;;;:::i;:::-;:62;;;;:::i;:::-;32128:1;32107:18;:22;;;32140:18;:22;;;32173:20;:24;;;32208:19;:23;;;32266:18;;32258:62;;32006:88;;-1:-1:-1;;;;;;32266:18:0;;32298:17;;32258:62;32128:1;32258:62;32298:17;32266:18;32258:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32244:76:0;;-1:-1:-1;;32337:19:0;;;;;:42;;;32378:1;32360:15;:19;32337:42;32333:278;;;32396:46;32409:15;32426;32396:12;:46::i;:::-;32566:18;;;32462:137;;;14738:25:1;;;14779:18;;;14772:34;;;14822:18;;14815:34;32462:137:0;;14726:2:1;14711:18;32462:137:0;;;;;;;32333:278;32643:17;;32635:60;;-1:-1:-1;;;;;32643:17:0;;;;32674:16;;32635:60;;;;32674:16;32643:17;32635:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;32728:16:0;;32720:64;;32621:74;;-1:-1:-1;;;;;;32728:16:0;;32758:21;;32720:64;;;;32758:21;32728:16;32720:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;30795:1997:0:o;9333:98::-;9391:7;9418:5;9422:1;9418;:5;:::i;:::-;9411:12;9333:98;-1:-1:-1;;;9333:98:0:o;9439:::-;9497:7;9524:5;9528:1;9524;:5;:::i;9227:98::-;9285:7;9312:5;9316:1;9312;:5;:::i;29668:589::-;29818:16;;;29832:1;29818:16;;;;;;;;29794:21;;29818:16;;;;;;;;;;-1:-1:-1;29818:16:0;29794:40;;29863:4;29845;29850:1;29845:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;29845:23:0;;;-1:-1:-1;;;;;29845:23:0;;;;;29889:15;-1:-1:-1;;;;;29889:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29879:4;29884:1;29879:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;29879:32:0;;;-1:-1:-1;;;;;29879:32:0;;;;;29924:62;29941:4;29956:15;29974:11;29924:8;:62::i;:::-;30025:224;;-1:-1:-1;;;30025:224:0;;-1:-1:-1;;;;;30025:15:0;:66;;;;:224;;30106:11;;30132:1;;30176:4;;30203;;30223:15;;30025:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29723:534;29668:589;:::o;30265:522::-;30413:62;30430:4;30445:15;30463:11;30413:8;:62::i;:::-;30722:16;;30518:261;;-1:-1:-1;;;30518:261:0;;30590:4;30518:261;;;16582:34:1;16632:18;;;16625:34;;;30636:1:0;16675:18:1;;;16668:34;;;16718:18;;;16711:34;-1:-1:-1;;;;;30722:16:0;;;16761:19:1;;;16754:44;30753:15:0;16814:19:1;;;16807:35;30518:15:0;:31;;;;;;30557:9;;16516:19:1;;30518:261:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;30265:522;;:::o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:548::-;311:4;340:2;369;358:9;351:21;401:6;395:13;444:6;439:2;428:9;424:18;417:34;469:1;479:140;493:6;490:1;487:13;479:140;;;588:14;;;584:23;;578:30;554:17;;;573:2;550:26;543:66;508:10;;479:140;;;483:3;668:1;663:2;654:6;643:9;639:22;635:31;628:42;738:2;731;727:7;722:2;714:6;710:15;706:29;695:9;691:45;687:54;679:62;;;;199:548;;;;:::o;752:131::-;-1:-1:-1;;;;;827:31:1;;817:42;;807:70;;873:1;870;863:12;888:315;956:6;964;1017:2;1005:9;996:7;992:23;988:32;985:52;;;1033:1;1030;1023:12;985:52;1072:9;1059:23;1091:31;1116:5;1091:31;:::i;:::-;1141:5;1193:2;1178:18;;;;1165:32;;-1:-1:-1;;;888:315:1:o;1817:456::-;1894:6;1902;1910;1963:2;1951:9;1942:7;1938:23;1934:32;1931:52;;;1979:1;1976;1969:12;1931:52;2018:9;2005:23;2037:31;2062:5;2037:31;:::i;:::-;2087:5;-1:-1:-1;2144:2:1;2129:18;;2116:32;2157:33;2116:32;2157:33;:::i;:::-;1817:456;;2209:7;;-1:-1:-1;;;2263:2:1;2248:18;;;;2235:32;;1817:456::o;2899:160::-;2964:20;;3020:13;;3013:21;3003:32;;2993:60;;3049:1;3046;3039:12;3064:689;3156:6;3164;3172;3225:2;3213:9;3204:7;3200:23;3196:32;3193:52;;;3241:1;3238;3231:12;3193:52;3281:9;3268:23;3310:18;3351:2;3343:6;3340:14;3337:34;;;3367:1;3364;3357:12;3337:34;3405:6;3394:9;3390:22;3380:32;;3450:7;3443:4;3439:2;3435:13;3431:27;3421:55;;3472:1;3469;3462:12;3421:55;3512:2;3499:16;3538:2;3530:6;3527:14;3524:34;;;3554:1;3551;3544:12;3524:34;3609:7;3602:4;3592:6;3589:1;3585:14;3581:2;3577:23;3573:34;3570:47;3567:67;;;3630:1;3627;3620:12;3567:67;3661:4;3653:13;;;;-1:-1:-1;3685:6:1;-1:-1:-1;3710:37:1;;3726:20;;;-1:-1:-1;3710:37:1;:::i;:::-;3700:47;;3064:689;;;;;:::o;3758:247::-;3817:6;3870:2;3858:9;3849:7;3845:23;3841:32;3838:52;;;3886:1;3883;3876:12;3838:52;3925:9;3912:23;3944:31;3969:5;3944:31;:::i;4010:315::-;4075:6;4083;4136:2;4124:9;4115:7;4111:23;4107:32;4104:52;;;4152:1;4149;4142:12;4104:52;4191:9;4178:23;4210:31;4235:5;4210:31;:::i;:::-;4260:5;-1:-1:-1;4284:35:1;4315:2;4300:18;;4284:35;:::i;:::-;4274:45;;4010:315;;;;;:::o;4330:180::-;4386:6;4439:2;4427:9;4418:7;4414:23;4410:32;4407:52;;;4455:1;4452;4445:12;4407:52;4478:26;4494:9;4478:26;:::i;4515:388::-;4583:6;4591;4644:2;4632:9;4623:7;4619:23;4615:32;4612:52;;;4660:1;4657;4650:12;4612:52;4699:9;4686:23;4718:31;4743:5;4718:31;:::i;:::-;4768:5;-1:-1:-1;4825:2:1;4810:18;;4797:32;4838:33;4797:32;4838:33;:::i;:::-;4890:7;4880:17;;;4515:388;;;;;:::o;4908:356::-;5110:2;5092:21;;;5129:18;;;5122:30;5188:34;5183:2;5168:18;;5161:62;5255:2;5240:18;;4908:356::o;5269:127::-;5330:10;5325:3;5321:20;5318:1;5311:31;5361:4;5358:1;5351:15;5385:4;5382:1;5375:15;5401:168;5474:9;;;5505;;5522:15;;;5516:22;;5502:37;5492:71;;5543:18;;:::i;5574:217::-;5614:1;5640;5630:132;;5684:10;5679:3;5675:20;5672:1;5665:31;5719:4;5716:1;5709:15;5747:4;5744:1;5737:15;5630:132;-1:-1:-1;5776:9:1;;5574:217::o;6206:380::-;6285:1;6281:12;;;;6328;;;6349:61;;6403:4;6395:6;6391:17;6381:27;;6349:61;6456:2;6448:6;6445:14;6425:18;6422:38;6419:161;;6502:10;6497:3;6493:20;6490:1;6483:31;6537:4;6534:1;6527:15;6565:4;6562:1;6555:15;6419:161;;6206:380;;;:::o;7000:125::-;7065:9;;;7086:10;;;7083:36;;;7099:18;;:::i;7130:127::-;7191:10;7186:3;7182:20;7179:1;7172:31;7222:4;7219:1;7212:15;7246:4;7243:1;7236:15;7262:135;7301:3;7322:17;;;7319:43;;7342:18;;:::i;:::-;-1:-1:-1;7389:1:1;7378:13;;7262:135::o;10628:401::-;10830:2;10812:21;;;10869:2;10849:18;;;10842:30;10908:34;10903:2;10888:18;;10881:62;-1:-1:-1;;;10974:2:1;10959:18;;10952:35;11019:3;11004:19;;10628:401::o;11034:399::-;11236:2;11218:21;;;11275:2;11255:18;;;11248:30;11314:34;11309:2;11294:18;;11287:62;-1:-1:-1;;;11380:2:1;11365:18;;11358:33;11423:3;11408:19;;11034:399::o;13786:128::-;13853:9;;;13874:11;;;13871:37;;;13888:18;;:::i;14992:251::-;15062:6;15115:2;15103:9;15094:7;15090:23;15086:32;15083:52;;;15131:1;15128;15121:12;15083:52;15163:9;15157:16;15182:31;15207:5;15182:31;:::i;15248:980::-;15510:4;15558:3;15547:9;15543:19;15589:6;15578:9;15571:25;15615:2;15653:6;15648:2;15637:9;15633:18;15626:34;15696:3;15691:2;15680:9;15676:18;15669:31;15720:6;15755;15749:13;15786:6;15778;15771:22;15824:3;15813:9;15809:19;15802:26;;15863:2;15855:6;15851:15;15837:29;;15884:1;15894:195;15908:6;15905:1;15902:13;15894:195;;;15973:13;;-1:-1:-1;;;;;15969:39:1;15957:52;;16064:15;;;;16029:12;;;;16005:1;15923:9;15894:195;;;-1:-1:-1;;;;;;;16145:32:1;;;;16140:2;16125:18;;16118:60;-1:-1:-1;;;16209:3:1;16194:19;16187:35;16106:3;15248:980;-1:-1:-1;;;15248:980:1:o;16853:306::-;16941:6;16949;16957;17010:2;16998:9;16989:7;16985:23;16981:32;16978:52;;;17026:1;17023;17016:12;16978:52;17055:9;17049:16;17039:26;;17105:2;17094:9;17090:18;17084:25;17074:35;;17149:2;17138:9;17134:18;17128:25;17118:35;;16853:306;;;;;:::o
Swarm Source
ipfs://6262c85cea713554d45fda6167880f39d0d384d5448372ac852afc795b407cda
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.