ERC-20
Overview
Max Total Supply
10,000,000 TRPG
Holders
94
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
ERC20AppContract
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-31 */ // SPDX-License-Identifier: Unlicensed /* The Trumpening Website: https://thetrumpening.com */ pragma solidity 0.8.17; abstract contract Context { function _msgSender() internal view returns (address payable) { return payable(msg.sender); } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address lpPair, uint); function getPair(address tokenA, address tokenB) external view returns (address lpPair); function createPair(address tokenA, address tokenB) external returns (address lpPair); } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function factory() external view returns (address); } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } interface IUniswapV2Router02 is IUniswapV2Router01 { function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract ERC20AppContract is Context, IERC20 { // Ownership moved to in-contract for customizability. address public _owner; mapping (address => uint256) private _tOwned; mapping (address => bool) lpPairs; uint256 private timeSinceLastPair = 0; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _liquidityHolders; mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) public isExcludedFromMaxWalletRestrictions; mapping (address => bool) private _isblacklisted; bool private sameBlockActive = true; mapping (address => uint256) private lastTrade; bool private isInitialized = false; mapping (address => uint256) firstBuy; uint256 private startingSupply; string private _name; string private _symbol; //========================== // FEES struct taxes { uint buyFee; uint sellFee; uint transferFee; } taxes public Fees = taxes( {buyFee: 300, sellFee: 9900, transferFee: 0}); //========================== // Max Limits struct MaxLimits { uint maxBuy; uint maxSell; uint maxTransfer; } MaxLimits public maxFees = MaxLimits( {maxBuy: 2000, maxSell: 2000, maxTransfer: 2000}); //========================== //Proportions of Taxes struct feeProportions { uint liquidity; uint developer; } feeProportions public Ratios = feeProportions( { liquidity: 80, developer: 20}); uint256 private constant masterTaxDivisor = 10000; uint256 private constant MAX = ~uint256(0); uint8 private _decimals; uint256 private _tTotal = startingSupply * 10**_decimals; uint256 private _tFeeTotal; IUniswapV2Router02 public dexRouter; address public lpPair; address constant private _routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address constant public DEAD = 0x000000000000000000000000000000000000dEaD; // Receives tokens, deflates supply, increases price floor. address public _devWallet; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = false; uint256 private maxTxPercent; uint256 private maxTxDivisor; uint256 private _maxTxAmount; uint256 private maxWalletPercent; uint256 private maxWalletDivisor; uint256 private _maxWalletSize; uint256 private swapThreshold; uint256 private swapAmount; bool public _hasLiqBeenAdded = false; uint256 private _liqAddStatus = 0; uint256 private _liqAddBlock = 0; uint256 private _liqAddStamp = 0; uint256 private _initialLiquidityAmount = 0; // make constant event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } modifier onlyOwner() { require(_owner == _msgSender(), "Caller != owner."); _; } constructor () { _owner = msg.sender; } receive() external payable {} //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== // Ownable removed as a lib and added here to allow for custom transfers and recnouncements. // This allows for removal of ownership privelages from the owner once renounced or transferred. function owner() public view returns (address) { return _owner; } function transferOwner(address newOwner) external onlyOwner() { require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address."); require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address."); setExcludedFromFees(_owner, false); setExcludedFromFees(newOwner, true); if (_devWallet == payable(_owner)) _devWallet = payable(newOwner); _allowances[_owner][newOwner] = balanceOf(_owner); if(balanceOf(_owner) > 0) { _transfer(_owner, newOwner, balanceOf(_owner)); } _owner = newOwner; emit OwnershipTransferred(_owner, newOwner); } function renounceOwnership() public virtual onlyOwner() { setExcludedFromFees(_owner, false); _owner = address(0); emit OwnershipTransferred(_owner, address(0)); } //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== function totalSupply() external view override returns (uint256) { return _tTotal; } function decimals() external view override returns (uint8) { return _decimals; } function symbol() external view override returns (string memory) { return _symbol; } function name() external view override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner(); } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address sender, address spender, uint256 amount) private { require(sender != address(0), "ERC20: Zero Address"); require(spender != address(0), "ERC20: Zero Address"); _allowances[sender][spender] = amount; emit Approval(sender, spender, amount); } function approveMax(address spender) public returns (bool) { return approve(spender, type(uint256).max); } function getFirstBuy(address account) public view returns (uint256) { return firstBuy[account]; } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] -= amount; } return _transfer(sender, recipient, amount); } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue); return true; } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function setNewRouter(address newRouter) public onlyOwner() { IUniswapV2Router02 _newRouter = IUniswapV2Router02(newRouter); address get_pair = IUniswapV2Factory(_newRouter.factory()).getPair(address(this), _newRouter.WETH()); if (get_pair == address(0)) { lpPair = IUniswapV2Factory(_newRouter.factory()).createPair(address(this), _newRouter.WETH()); } else { lpPair = get_pair; } dexRouter = _newRouter; } function setLpPair(address pair, bool enabled) external onlyOwner { if (enabled == false) { lpPairs[pair] = false; } else { if (timeSinceLastPair != 0) { require(block.timestamp - timeSinceLastPair > 1 weeks, "One week cooldown."); } lpPairs[pair] = true; timeSinceLastPair = block.timestamp; } } function updateJustForFun(uint256 rInitializer) external onlyOwner { require (_liqAddStatus == 0, "Error."); _liqAddStatus = rInitializer; } function letsGoTrump(string memory initName, string memory initSymbol, uint256 initSupply) external onlyOwner payable { require(!isInitialized, "Contract already initialized."); require(_liqAddStatus == 0); _name = initName; _symbol = initSymbol; startingSupply = initSupply; _decimals = 18; _tTotal = startingSupply * 10**_decimals; dexRouter = IUniswapV2Router02(_routerAddress); lpPair = IUniswapV2Factory(dexRouter.factory()).createPair(dexRouter.WETH(), address(this)); lpPairs[lpPair] = true; _allowances[address(this)][address(dexRouter)] = type(uint256).max; _devWallet = address(owner()); maxTxPercent = 102; // Max Transaction Amount: 100 = 1% maxTxDivisor = 10000; _maxTxAmount = (_tTotal * maxTxPercent) / maxTxDivisor; maxWalletPercent = 110; //Max Wallet 100: 1% maxWalletDivisor = 10000; _maxWalletSize = (_tTotal * maxWalletPercent) / maxWalletDivisor; swapThreshold = (_tTotal * 5) / 10_000; swapAmount = (_tTotal * 5) / 1_000; _isExcludedFromFees[owner()] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[DEAD] = true; _liquidityHolders[owner()] = true; approve(_routerAddress, type(uint256).max); approve(owner(), type(uint256).max); isInitialized = true; _tOwned[owner()] = _tTotal; _approve(owner(), _routerAddress, _tTotal); emit Transfer(address(0), owner(), _tTotal); uint256 tokensToAddToLiq = (balanceOf(_owner) * 800) / 1_000; _approve(_owner, address(dexRouter), type(uint256).max); _approve(address(this), address(dexRouter), type(uint256).max); _transfer(_owner, address(this), tokensToAddToLiq); dexRouter.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function setExcludedFromFees(address account, bool enabled) public onlyOwner { _isExcludedFromFees[account] = enabled; } function excludeFromWalletRestrictions(address excludedAddress) public onlyOwner{ isExcludedFromMaxWalletRestrictions[excludedAddress] = true; } function revokeExcludedFromWalletRestrictions(address excludedAddress) public onlyOwner{ isExcludedFromMaxWalletRestrictions[excludedAddress] = false; } function setRatios(uint _liquidity, uint _developer) external onlyOwner { require ( (_liquidity+_developer) == 1100, "limit taxes"); Ratios.liquidity = _liquidity; Ratios.developer = _developer; } function setTaxes(uint _buyFee, uint _sellFee, uint _transferFee) external onlyOwner { Fees.buyFee = _buyFee; Fees.sellFee = _sellFee; Fees.transferFee = _transferFee; } function setMaxTxPercent(uint percent, uint divisor) external onlyOwner { uint256 check = (_tTotal * percent) / divisor; require(check >= (_tTotal / 300), "Must be above 0.33~% of total supply."); _maxTxAmount = check; } function setMaxWalletSize(uint percent, uint divisor) external onlyOwner { uint256 check = (_tTotal * percent) / divisor; require(check >= (_tTotal / 300), "Must be above 0.33~% of total supply."); _maxWalletSize = check; } function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner { swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor; swapAmount = (_tTotal * amountPercent) / amountDivisor; } function setWallets(address payable developerWallet) external onlyOwner { _devWallet = payable(developerWallet); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function shakeOut(address[] memory blacklisted_, bool status_) public onlyOwner { for (uint i = 0; i < blacklisted_.length; i++) { if (!lpPairs[blacklisted_[i]] && blacklisted_[i] != address(_routerAddress)) { _isblacklisted[blacklisted_[i]] = status_; } } } function _hasLimits(address from, address to) private view returns (bool) { return from != owner() && to != owner() && !_liquidityHolders[to] && !_liquidityHolders[from] && to != DEAD && to != address(0) && from != address(this); } function _transfer(address from, address to, uint256 amount) internal returns (bool) { require(from != address(0), "ERC20: Zero address."); require(to != address(0), "ERC20: Zero address."); require(amount > 0, "Must >0."); require(!_isblacklisted[to] && !_isblacklisted[from],"unable to trade"); if(_hasLimits(from, to)) { if (sameBlockActive) { if (lpPairs[from]){ require(lastTrade[to] != block.number); lastTrade[to] = block.number; } else { require(lastTrade[from] != block.number); lastTrade[from] = block.number; } } if(!(isExcludedFromMaxWalletRestrictions[from] || isExcludedFromMaxWalletRestrictions[to])) { if(lpPairs[from] || lpPairs[to]){ require(amount <= _maxTxAmount, "Exceeds the maxTxAmount."); } if(to != _routerAddress && !lpPairs[to]) { require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); } } } if (_tOwned[to] == 0) { firstBuy[to] = block.timestamp; } bool takeFee = true; if(_isExcludedFromFees[from] || _isExcludedFromFees[to]){ takeFee = false; } if (lpPairs[to]) { if (!inSwapAndLiquify && swapAndLiquifyEnabled ) { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= swapThreshold) { if(contractTokenBalance >= swapAmount) { contractTokenBalance = swapAmount; } swapAndLiquify(contractTokenBalance); } } } return _finalizeTransfer(from, to, amount, takeFee); } function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { if (Ratios.liquidity + Ratios.developer == 0) return; uint256 toLiquify = ((contractTokenBalance * Ratios.liquidity) / (Ratios.liquidity + Ratios.developer) ) / 2; uint256 toSwapForEth = contractTokenBalance - toLiquify; swapTokensForEth(toSwapForEth); uint256 currentBalance = address(this).balance; uint256 liquidityBalance = ((currentBalance * Ratios.liquidity) / (Ratios.liquidity + Ratios.developer) ) / 2; if (toLiquify > 0) { addLiquidity(toLiquify, liquidityBalance); emit SwapAndLiquify(toLiquify, liquidityBalance, toLiquify); } if (address(this).balance > 0) { bool success = true; (success,) = address(_devWallet).call{value: address(this).balance}(""); } } function swapTokensForEth(uint256 tokenAmount) internal { address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { dexRouter.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function _checkLiquidityAdd(address from, address to) private { require(!_hasLiqBeenAdded, "Liquidity already added and marked."); if (!_hasLimits(from, to) && to == lpPair) { _liqAddBlock = block.number; _liquidityHolders[from] = true; _hasLiqBeenAdded = true; _liqAddStamp = block.timestamp; swapAndLiquifyEnabled = true; emit SwapAndLiquifyEnabledUpdated(true); } } function _finalizeTransfer(address from, address to, uint256 amount, bool takeFee) private returns (bool) { if (!_hasLiqBeenAdded) { _checkLiquidityAdd(from, to); if (!_hasLiqBeenAdded && _hasLimits(from, to)) { revert("Only owner can transfer at this time."); } } _tOwned[from] -= amount; uint256 amountReceived = (takeFee) ? takeTaxes(from, to, amount) : amount; //A _tOwned[to] += amountReceived; emit Transfer(from, to, amountReceived); return true; } function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) { uint256 currentFee; if (to == lpPair) { currentFee=Fees.sellFee; } else if (from == lpPair) {currentFee = Fees.buyFee;} else {currentFee = Fees.transferFee;} if (_hasLimits(from, to)){ if (_liqAddStatus == 0 || _liqAddStatus != (1)) { revert(); } } uint256 feeAmount = (amount * currentFee / masterTaxDivisor); _tOwned[address(this)] += (feeAmount); emit Transfer(from, address(this), feeAmount); return amount - feeAmount; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Fees","outputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"},{"internalType":"uint256","name":"transferFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Ratios","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"developer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"dexRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"excludedAddress","type":"address"}],"name":"excludeFromWalletRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getFirstBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxWalletRestrictions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"initName","type":"string"},{"internalType":"string","name":"initSymbol","type":"string"},{"internalType":"uint256","name":"initSupply","type":"uint256"}],"name":"letsGoTrump","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFees","outputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"},{"internalType":"uint256","name":"maxTransfer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"excludedAddress","type":"address"}],"name":"revokeExcludedFromWalletRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_developer","type":"uint256"}],"name":"setRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"},{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"developerWallet","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"blacklisted_","type":"address[]"},{"internalType":"bool","name":"status_","type":"bool"}],"name":"shakeOut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rInitializer","type":"uint256"}],"name":"updateJustForFun","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
600060038190556009805460ff19908116600117909155600b8054909116905561012c60808190526126ac60a081905260c08390526010919091556011556012556107d060e0819052610100819052610120819052601381905560148181556015919091556101806040526050610140819052610160829052601655601755601854620000919060ff16600a62000209565b600d54620000a0919062000221565b601955601d805460ff60a81b191690556026805460ff191690556000602781905560288190556029819055602a55348015620000db57600080fd5b50600080546001600160a01b031916331790556200023b565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200014b5781600019048211156200012f576200012f620000f4565b808516156200013d57918102915b93841c93908002906200010f565b509250929050565b600082620001645750600162000203565b81620001735750600062000203565b81600181146200018c57600281146200019757620001b7565b600191505062000203565b60ff841115620001ab57620001ab620000f4565b50506001821b62000203565b5060208310610133831016604e8410600b8410161715620001dc575081810a62000203565b620001e883836200010a565b8060001904821115620001ff57620001ff620000f4565b0290505b92915050565b60006200021a60ff84168362000153565b9392505050565b8082028115828204841417620002035762000203620000f4565b613226806200024b6000396000f3fe60806040526004361061026b5760003560e01c8063715018a611610144578063b5f7bfa2116100b6578063e3931c971161007a578063e3931c97146107a4578063e83e34b1146107c4578063e9dae5ed146107e3578063eafb5a3c14610803578063eb50e70e14610823578063fb78680d1461084357600080fd5b8063b5f7bfa2146106ce578063bc1323e8146106fe578063c49b9a801461071e578063ce8b79c91461073e578063dd62ed3e1461075e57600080fd5b806395d89b411161010857806395d89b4114610603578063a13ce2c614610618578063a2c8ce9c1461064e578063a457c2d71461066e578063a9059cbb1461068e578063b2bdfa7b146106ae57600080fd5b8063715018a61461058057806380c581d114610595578063893d20e8146105b55780638c7321ad146105d35780638da5cb5b146105b557600080fd5b80633aaa36e6116101dd5780634fbee193116101a15780634fbee193146104ad57806350a8e016146104e6578063571ac8b014610500578063590ffdce146105205780636639dd931461054057806370a082311461056057600080fd5b80633aaa36e6146103f25780633f3cf56c1461042c578063452ed4f11461044c5780634a74bb021461046c5780634fb2e45d1461048d57600080fd5b806318160ddd1161022f57806318160ddd1461033c57806319cdc77a1461035b57806323b872dd146103705780632600395714610390578063313ce567146103b057806339509351146103d257600080fd5b806303fd2a451461027757806306fdde03146102aa5780630758d924146102cc578063095ea7b3146102ec57806311a63e171461031c57600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102b657600080fd5b506102bf610863565b6040516102a19190612947565b3480156102d857600080fd5b50601b5461028d906001600160a01b031681565b3480156102f857600080fd5b5061030c6103073660046129ad565b6108f5565b60405190151581526020016102a1565b34801561032857600080fd5b50601d5461028d906001600160a01b031681565b34801561034857600080fd5b506019545b6040519081526020016102a1565b61036e610369366004612a90565b61090c565b005b34801561037c57600080fd5b5061030c61038b366004612afd565b610f57565b34801561039c57600080fd5b5061036e6103ab366004612b3e565b610fcf565b3480156103bc57600080fd5b5060185460405160ff90911681526020016102a1565b3480156103de57600080fd5b5061030c6103ed3660046129ad565b61104c565b3480156103fe57600080fd5b5060105460115460125461041192919083565b604080519384526020840192909252908201526060016102a1565b34801561043857600080fd5b5061036e610447366004612b3e565b611088565b34801561045857600080fd5b50601c5461028d906001600160a01b031681565b34801561047857600080fd5b50601d5461030c90600160a81b900460ff1681565b34801561049957600080fd5b5061036e6104a8366004612b60565b611105565b3480156104b957600080fd5b5061030c6104c8366004612b60565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156104f257600080fd5b5060265461030c9060ff1681565b34801561050c57600080fd5b5061030c61051b366004612b60565b611298565b34801561052c57600080fd5b5061036e61053b366004612b92565b6112a6565b34801561054c57600080fd5b5061036e61055b366004612b3e565b6112fb565b34801561056c57600080fd5b5061034d61057b366004612b60565b611378565b34801561058c57600080fd5b5061036e611393565b3480156105a157600080fd5b5061036e6105b0366004612b92565b611412565b3480156105c157600080fd5b506000546001600160a01b031661028d565b3480156105df57600080fd5b5061030c6105ee366004612b60565b60076020526000908152604090205460ff1681565b34801561060f57600080fd5b506102bf6114f0565b34801561062457600080fd5b5061034d610633366004612b60565b6001600160a01b03166000908152600c602052604090205490565b34801561065a57600080fd5b5061036e610669366004612bc7565b6114ff565b34801561067a57600080fd5b5061030c6106893660046129ad565b611631565b34801561069a57600080fd5b5061030c6106a93660046129ad565b611668565b3480156106ba57600080fd5b5060005461028d906001600160a01b031681565b3480156106da57600080fd5b506016546017546106e9919082565b604080519283526020830191909152016102a1565b34801561070a57600080fd5b5061036e610719366004612b60565b61167f565b34801561072a57600080fd5b5061036e610739366004612c8b565b6116ca565b34801561074a57600080fd5b5061036e610759366004612b60565b61174c565b34801561076a57600080fd5b5061034d610779366004612ca6565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156107b057600080fd5b5061036e6107bf366004612cdf565b61179a565b3480156107d057600080fd5b5060135460145460155461041192919083565b3480156107ef57600080fd5b5061036e6107fe366004612cf8565b611802565b34801561080f57600080fd5b5061036e61081e366004612b60565b61183a565b34801561082f57600080fd5b5061036e61083e366004612b60565b611b66565b34801561084f57600080fd5b5061036e61085e366004612d24565b611bb2565b6060600e805461087290612d56565b80601f016020809104026020016040519081016040528092919081815260200182805461089e90612d56565b80156108eb5780601f106108c0576101008083540402835291602001916108eb565b820191906000526020600020905b8154815290600101906020018083116108ce57829003601f168201915b5050505050905090565b6000610902338484611c1b565b5060015b92915050565b6000546001600160a01b0316331461093f5760405162461bcd60e51b815260040161093690612d90565b60405180910390fd5b600b5460ff16156109925760405162461bcd60e51b815260206004820152601d60248201527f436f6e747261637420616c726561647920696e697469616c697a65642e0000006044820152606401610936565b6027541561099f57600080fd5b600e6109ab8482612e00565b50600f6109b88382612e00565b50600d8190556018805460ff191660129081179091556109d990600a612fba565b600d546109e69190612fc9565b601955601b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610a4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a719190612fe0565b6001600160a01b031663c9c65396601b60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ad2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af69190612fe0565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015610b42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b669190612fe0565b601c80546001600160a01b03199081166001600160a01b039384169081179092556000918252600260209081526040808420805460ff1916600117905530845260048252808420601b5486168552909152822060001990559054601d80549190931691161790556066601e819055612710601f8190556019549091610bea91612fc9565b610bf49190612ffd565b602055606e602181905561271060228190556019549091610c1491612fc9565b610c1e9190612ffd565b60235560195461271090610c33906005612fc9565b610c3d9190612ffd565b6024556019546103e890610c52906005612fc9565b610c5c9190612ffd565b602555600160066000610c776000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526006909252812080548316600190811790915561dead82527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2280549093168117909255600590610cfe6000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610d46737a250d5630b4cf539739df2c5dacb4c659f2488d6000196108f5565b50610d64610d5c6000546001600160a01b031690565b6000196108f5565b50600b805460ff19166001908117909155601954906000610d8d6000546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002055610dd9610dbc6000546001600160a01b031690565b737a250d5630b4cf539739df2c5dacb4c659f2488d601954611c1b565b6000546001600160a01b03166001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601954604051610e2c91815260200190565b60405180910390a3600080546103e890610e4e906001600160a01b0316611378565b610e5a90610320612fc9565b610e649190612ffd565b600054601b54919250610e86916001600160a01b039182169116600019611c1b565b601b54610ea09030906001600160a01b0316600019611c1b565b600054610eb7906001600160a01b03163083611d14565b50601b546001600160a01b031663f305d7194730610ed481611378565b600080610ee96000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610f0b9695949392919061301f565b60606040518083038185885af1158015610f29573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f4e919061305a565b50505050505050565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610fbc576001600160a01b038416600090815260046020908152604080832033845290915281208054849290610fb6908490613088565b90915550505b610fc7848484611d14565b949350505050565b6000546001600160a01b03163314610ff95760405162461bcd60e51b815260040161093690612d90565b6000818360195461100a9190612fc9565b6110149190612ffd565b905061012c6019546110269190612ffd565b8110156110455760405162461bcd60e51b81526004016109369061309b565b6023555050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916109029185906110839086906130e0565b611c1b565b6000546001600160a01b031633146110b25760405162461bcd60e51b815260040161093690612d90565b600081836019546110c39190612fc9565b6110cd9190612ffd565b905061012c6019546110df9190612ffd565b8110156110fe5760405162461bcd60e51b81526004016109369061309b565b6020555050565b6000546001600160a01b0316331461112f5760405162461bcd60e51b815260040161093690612d90565b6001600160a01b0381166111555760405162461bcd60e51b8152600401610936906130f3565b61deac196001600160a01b038216016111805760405162461bcd60e51b8152600401610936906130f3565b60008054611199916001600160a01b03909116906112a6565b6111a48160016112a6565b600054601d546001600160a01b039182169116036111d857601d80546001600160a01b0319166001600160a01b0383161790555b6000546111ed906001600160a01b0316611378565b600080546001600160a01b0390811682526004602090815260408084208684168552909152822092909255805490916112269116611378565b111561124d5760005461124b906001600160a01b03168261124682611378565b611d14565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000610906826000196108f5565b6000546001600160a01b031633146112d05760405162461bcd60e51b815260040161093690612d90565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113255760405162461bcd60e51b815260040161093690612d90565b61132f81836130e0565b61044c1461136d5760405162461bcd60e51b815260206004820152600b60248201526a6c696d697420746178657360a81b6044820152606401610936565b601691909155601755565b6001600160a01b031660009081526001602052604090205490565b6000546001600160a01b031633146113bd5760405162461bcd60e51b815260040161093690612d90565b600080546113d6916001600160a01b03909116906112a6565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b0316331461143c5760405162461bcd60e51b815260040161093690612d90565b80151560000361146857506001600160a01b03166000908152600260205260409020805460ff19169055565b600354156114c45762093a80600354426114829190613088565b116114c45760405162461bcd60e51b815260206004820152601260248201527127b732903bb2b2b59031b7b7b63237bbb71760711b6044820152606401610936565b6001600160a01b0382166000908152600260205260409020805460ff19166001179055426003555b5050565b6060600f805461087290612d56565b6000546001600160a01b031633146115295760405162461bcd60e51b815260040161093690612d90565b60005b825181101561162c576002600084838151811061154b5761154b613150565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff161580156115be5750737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03168382815181106115aa576115aa613150565b60200260200101516001600160a01b031614155b1561161a5781600860008584815181106115da576115da613150565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8061162481613166565b91505061152c565b505050565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610902918590611083908690613088565b6000611675338484611d14565b5060019392505050565b6000546001600160a01b031633146116a95760405162461bcd60e51b815260040161093690612d90565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b031633146116f45760405162461bcd60e51b815260040161093690612d90565b601d8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061174190831515815260200190565b60405180910390a150565b6000546001600160a01b031633146117765760405162461bcd60e51b815260040161093690612d90565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000546001600160a01b031633146117c45760405162461bcd60e51b815260040161093690612d90565b602754156117fd5760405162461bcd60e51b815260206004820152600660248201526522b93937b91760d11b6044820152606401610936565b602755565b6000546001600160a01b0316331461182c5760405162461bcd60e51b815260040161093690612d90565b601092909255601155601255565b6000546001600160a01b031633146118645760405162461bcd60e51b815260040161093690612d90565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cd9190612fe0565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561191a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193e9190612fe0565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ad9190612fe0565b90506001600160a01b038116611b2657816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1f9190612fe0565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a909190612fe0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b019190612fe0565b601c80546001600160a01b0319166001600160a01b0392909216919091179055611b42565b601c80546001600160a01b0319166001600160a01b0383161790555b50601b80546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b03163314611b905760405162461bcd60e51b815260040161093690612d90565b601d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611bdc5760405162461bcd60e51b815260040161093690612d90565b8284601954611beb9190612fc9565b611bf59190612ffd565b6024556019548190611c08908490612fc9565b611c129190612ffd565b60255550505050565b6001600160a01b038316611c675760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610936565b6001600160a01b038216611cb35760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610936565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611d635760405162461bcd60e51b815260206004820152601460248201527322a92199181d102d32b9379030b2323932b9b99760611b6044820152606401610936565b6001600160a01b038316611db05760405162461bcd60e51b815260206004820152601460248201527322a92199181d102d32b9379030b2323932b9b99760611b6044820152606401610936565b60008211611deb5760405162461bcd60e51b815260206004820152600860248201526726bab9ba101f181760c11b6044820152606401610936565b6001600160a01b03831660009081526008602052604090205460ff16158015611e2d57506001600160a01b03841660009081526008602052604090205460ff16155b611e6b5760405162461bcd60e51b815260206004820152600f60248201526e756e61626c6520746f20747261646560881b6044820152606401610936565b611e7584846121c8565b156120b55760095460ff1615611f2c576001600160a01b03841660009081526002602052604090205460ff1615611eeb576001600160a01b0383166000908152600a6020526040902054439003611ecb57600080fd5b6001600160a01b0383166000908152600a60205260409020439055611f2c565b6001600160a01b0384166000908152600a6020526040902054439003611f1057600080fd5b6001600160a01b0384166000908152600a602052604090204390555b6001600160a01b03841660009081526007602052604090205460ff1680611f6b57506001600160a01b03831660009081526007602052604090205460ff165b6120b5576001600160a01b03841660009081526002602052604090205460ff1680611fae57506001600160a01b03831660009081526002602052604090205460ff165b15612005576020548211156120055760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e00000000000000006044820152606401610936565b6001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d1480159061204b57506001600160a01b03831660009081526002602052604090205460ff16155b156120b5576023548261205d85611378565b61206791906130e0565b11156120b55760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610936565b6001600160a01b03831660009081526001602052604081205490036120f0576001600160a01b0383166000908152600c602052604090204290555b6001600160a01b03841660009081526006602052604090205460019060ff168061213257506001600160a01b03841660009081526006602052604090205460ff165b1561213b575060005b6001600160a01b03841660009081526002602052604090205460ff16156121b357601d54600160a01b900460ff1615801561217f5750601d54600160a81b900460ff165b156121b357600061218f30611378565b905060245481106121b15760255481106121a857506025545b6121b181612286565b505b6121bf858585846123fd565b95945050505050565b600080546001600160a01b038481169116148015906121f557506000546001600160a01b03838116911614155b801561221a57506001600160a01b03821660009081526005602052604090205460ff16155b801561223f57506001600160a01b03831660009081526005602052604090205460ff16155b801561225657506001600160a01b03821661dead14155b801561226a57506001600160a01b03821615155b801561227f57506001600160a01b0383163014155b9392505050565b601d805460ff60a01b1916600160a01b1790556017546016546122a991906130e0565b156123ed576017546016546000916002916122c491906130e0565b6016546122d19085612fc9565b6122db9190612ffd565b6122e59190612ffd565b905060006122f38284613088565b90506122fe8161255a565b6017546016544791600091600291612315916130e0565b6016546123229085612fc9565b61232c9190612ffd565b6123369190612ffd565b9050831561238a57612348848261269b565b60408051858152602081018390529081018590527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b47156123e857601d546040516001916001600160a01b0316904790600081818185875af1925050503d80600081146123de576040519150601f19603f3d011682016040523d82523d6000602084013e6123e3565b606091505b505050505b505050505b50601d805460ff60a01b19169055565b60265460009060ff16612487576124148585612730565b60265460ff1615801561242c575061242c85856121c8565b156124875760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b6064820152608401610936565b6001600160a01b038516600090815260016020526040812080548592906124af908490613088565b9091555060009050826124c257836124cd565b6124cd86868661283e565b6001600160a01b0386166000908152600160205260408120805492935083929091906124fa9084906130e0565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161254691815260200190565b60405180910390a350600195945050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061258f5761258f613150565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156125e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061260c9190612fe0565b8160018151811061261f5761261f613150565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b815291169063791ac9479061266590859060009086903090429060040161317f565b600060405180830381600087803b15801561267f57600080fd5b505af1158015612693573d6000803e3d6000fd5b505050505050565b601b546001600160a01b031663f305d7198230856000806126c46000546001600160a01b031690565b426040518863ffffffff1660e01b81526004016126e69695949392919061301f565b60606040518083038185885af1158015612704573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612729919061305a565b5050505050565b60265460ff161561278f5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610936565b61279982826121c8565b1580156127b35750601c546001600160a01b038281169116145b156114ec57436028556001600160a01b038216600090815260056020908152604091829020805460ff199081166001908117909255602680549091168217905542602955601d805460ff60a81b1916600160a81b17905591519182527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159910160405180910390a15050565b601c5460009081906001600160a01b03908116908516036128625750601154612886565b601c546001600160a01b03908116908616036128815750601054612886565b506012545b61289085856121c8565b156128b15760275415806128a75750602754600114155b156128b157600080fd5b60006127106128c08386612fc9565b6128ca9190612ffd565b306000908152600160205260408120805492935083929091906128ee9084906130e0565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361293d8185613088565b9695505050505050565b600060208083528351808285015260005b8181101561297457858101830151858201604001528201612958565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146129aa57600080fd5b50565b600080604083850312156129c057600080fd5b82356129cb81612995565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612a1857612a186129d9565b604052919050565b600082601f830112612a3157600080fd5b813567ffffffffffffffff811115612a4b57612a4b6129d9565b612a5e601f8201601f19166020016129ef565b818152846020838601011115612a7357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215612aa557600080fd5b833567ffffffffffffffff80821115612abd57600080fd5b612ac987838801612a20565b94506020860135915080821115612adf57600080fd5b50612aec86828701612a20565b925050604084013590509250925092565b600080600060608486031215612b1257600080fd5b8335612b1d81612995565b92506020840135612b2d81612995565b929592945050506040919091013590565b60008060408385031215612b5157600080fd5b50508035926020909101359150565b600060208284031215612b7257600080fd5b813561227f81612995565b80358015158114612b8d57600080fd5b919050565b60008060408385031215612ba557600080fd5b8235612bb081612995565b9150612bbe60208401612b7d565b90509250929050565b60008060408385031215612bda57600080fd5b823567ffffffffffffffff80821115612bf257600080fd5b818501915085601f830112612c0657600080fd5b8135602082821115612c1a57612c1a6129d9565b8160051b9250612c2b8184016129ef565b8281529284018101928181019089851115612c4557600080fd5b948201945b84861015612c6f5785359350612c5f84612995565b8382529482019490820190612c4a565b9650612c7e9050878201612b7d565b9450505050509250929050565b600060208284031215612c9d57600080fd5b61227f82612b7d565b60008060408385031215612cb957600080fd5b8235612cc481612995565b91506020830135612cd481612995565b809150509250929050565b600060208284031215612cf157600080fd5b5035919050565b600080600060608486031215612d0d57600080fd5b505081359360208301359350604090920135919050565b60008060008060808587031215612d3a57600080fd5b5050823594602084013594506040840135936060013592509050565b600181811c90821680612d6a57607f821691505b602082108103612d8a57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526010908201526f21b0b63632b910109e9037bbb732b91760811b604082015260600190565b601f82111561162c57600081815260208120601f850160051c81016020861015612de15750805b601f850160051c820191505b8181101561269357828155600101612ded565b815167ffffffffffffffff811115612e1a57612e1a6129d9565b612e2e81612e288454612d56565b84612dba565b602080601f831160018114612e635760008415612e4b5750858301515b600019600386901b1c1916600185901b178555612693565b600085815260208120601f198616915b82811015612e9257888601518255948401946001909101908401612e73565b5085821015612eb05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612f11578160001904821115612ef757612ef7612ec0565b80851615612f0457918102915b93841c9390800290612edb565b509250929050565b600082612f2857506001610906565b81612f3557506000610906565b8160018114612f4b5760028114612f5557612f71565b6001915050610906565b60ff841115612f6657612f66612ec0565b50506001821b610906565b5060208310610133831016604e8410600b8410161715612f94575081810a610906565b612f9e8383612ed6565b8060001904821115612fb257612fb2612ec0565b029392505050565b600061227f60ff841683612f19565b808202811582820484141761090657610906612ec0565b600060208284031215612ff257600080fd5b815161227f81612995565b60008261301a57634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561306f57600080fd5b8351925060208401519150604084015190509250925092565b8181038181111561090657610906612ec0565b60208082526025908201527f4d7573742062652061626f766520302e33337e25206f6620746f74616c2073756040820152643838363c9760d91b606082015260800190565b8082018082111561090657610906612ec0565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006001820161317857613178612ec0565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131cf5784516001600160a01b0316835293830193918301916001016131aa565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212205390c0e14fae3b617833ab14f0d8e104da1e6e198917db63b096ee5ecab6420264736f6c63430008110033
Deployed Bytecode
0x60806040526004361061026b5760003560e01c8063715018a611610144578063b5f7bfa2116100b6578063e3931c971161007a578063e3931c97146107a4578063e83e34b1146107c4578063e9dae5ed146107e3578063eafb5a3c14610803578063eb50e70e14610823578063fb78680d1461084357600080fd5b8063b5f7bfa2146106ce578063bc1323e8146106fe578063c49b9a801461071e578063ce8b79c91461073e578063dd62ed3e1461075e57600080fd5b806395d89b411161010857806395d89b4114610603578063a13ce2c614610618578063a2c8ce9c1461064e578063a457c2d71461066e578063a9059cbb1461068e578063b2bdfa7b146106ae57600080fd5b8063715018a61461058057806380c581d114610595578063893d20e8146105b55780638c7321ad146105d35780638da5cb5b146105b557600080fd5b80633aaa36e6116101dd5780634fbee193116101a15780634fbee193146104ad57806350a8e016146104e6578063571ac8b014610500578063590ffdce146105205780636639dd931461054057806370a082311461056057600080fd5b80633aaa36e6146103f25780633f3cf56c1461042c578063452ed4f11461044c5780634a74bb021461046c5780634fb2e45d1461048d57600080fd5b806318160ddd1161022f57806318160ddd1461033c57806319cdc77a1461035b57806323b872dd146103705780632600395714610390578063313ce567146103b057806339509351146103d257600080fd5b806303fd2a451461027757806306fdde03146102aa5780630758d924146102cc578063095ea7b3146102ec57806311a63e171461031c57600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102b657600080fd5b506102bf610863565b6040516102a19190612947565b3480156102d857600080fd5b50601b5461028d906001600160a01b031681565b3480156102f857600080fd5b5061030c6103073660046129ad565b6108f5565b60405190151581526020016102a1565b34801561032857600080fd5b50601d5461028d906001600160a01b031681565b34801561034857600080fd5b506019545b6040519081526020016102a1565b61036e610369366004612a90565b61090c565b005b34801561037c57600080fd5b5061030c61038b366004612afd565b610f57565b34801561039c57600080fd5b5061036e6103ab366004612b3e565b610fcf565b3480156103bc57600080fd5b5060185460405160ff90911681526020016102a1565b3480156103de57600080fd5b5061030c6103ed3660046129ad565b61104c565b3480156103fe57600080fd5b5060105460115460125461041192919083565b604080519384526020840192909252908201526060016102a1565b34801561043857600080fd5b5061036e610447366004612b3e565b611088565b34801561045857600080fd5b50601c5461028d906001600160a01b031681565b34801561047857600080fd5b50601d5461030c90600160a81b900460ff1681565b34801561049957600080fd5b5061036e6104a8366004612b60565b611105565b3480156104b957600080fd5b5061030c6104c8366004612b60565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156104f257600080fd5b5060265461030c9060ff1681565b34801561050c57600080fd5b5061030c61051b366004612b60565b611298565b34801561052c57600080fd5b5061036e61053b366004612b92565b6112a6565b34801561054c57600080fd5b5061036e61055b366004612b3e565b6112fb565b34801561056c57600080fd5b5061034d61057b366004612b60565b611378565b34801561058c57600080fd5b5061036e611393565b3480156105a157600080fd5b5061036e6105b0366004612b92565b611412565b3480156105c157600080fd5b506000546001600160a01b031661028d565b3480156105df57600080fd5b5061030c6105ee366004612b60565b60076020526000908152604090205460ff1681565b34801561060f57600080fd5b506102bf6114f0565b34801561062457600080fd5b5061034d610633366004612b60565b6001600160a01b03166000908152600c602052604090205490565b34801561065a57600080fd5b5061036e610669366004612bc7565b6114ff565b34801561067a57600080fd5b5061030c6106893660046129ad565b611631565b34801561069a57600080fd5b5061030c6106a93660046129ad565b611668565b3480156106ba57600080fd5b5060005461028d906001600160a01b031681565b3480156106da57600080fd5b506016546017546106e9919082565b604080519283526020830191909152016102a1565b34801561070a57600080fd5b5061036e610719366004612b60565b61167f565b34801561072a57600080fd5b5061036e610739366004612c8b565b6116ca565b34801561074a57600080fd5b5061036e610759366004612b60565b61174c565b34801561076a57600080fd5b5061034d610779366004612ca6565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156107b057600080fd5b5061036e6107bf366004612cdf565b61179a565b3480156107d057600080fd5b5060135460145460155461041192919083565b3480156107ef57600080fd5b5061036e6107fe366004612cf8565b611802565b34801561080f57600080fd5b5061036e61081e366004612b60565b61183a565b34801561082f57600080fd5b5061036e61083e366004612b60565b611b66565b34801561084f57600080fd5b5061036e61085e366004612d24565b611bb2565b6060600e805461087290612d56565b80601f016020809104026020016040519081016040528092919081815260200182805461089e90612d56565b80156108eb5780601f106108c0576101008083540402835291602001916108eb565b820191906000526020600020905b8154815290600101906020018083116108ce57829003601f168201915b5050505050905090565b6000610902338484611c1b565b5060015b92915050565b6000546001600160a01b0316331461093f5760405162461bcd60e51b815260040161093690612d90565b60405180910390fd5b600b5460ff16156109925760405162461bcd60e51b815260206004820152601d60248201527f436f6e747261637420616c726561647920696e697469616c697a65642e0000006044820152606401610936565b6027541561099f57600080fd5b600e6109ab8482612e00565b50600f6109b88382612e00565b50600d8190556018805460ff191660129081179091556109d990600a612fba565b600d546109e69190612fc9565b601955601b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610a4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a719190612fe0565b6001600160a01b031663c9c65396601b60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ad2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af69190612fe0565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015610b42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b669190612fe0565b601c80546001600160a01b03199081166001600160a01b039384169081179092556000918252600260209081526040808420805460ff1916600117905530845260048252808420601b5486168552909152822060001990559054601d80549190931691161790556066601e819055612710601f8190556019549091610bea91612fc9565b610bf49190612ffd565b602055606e602181905561271060228190556019549091610c1491612fc9565b610c1e9190612ffd565b60235560195461271090610c33906005612fc9565b610c3d9190612ffd565b6024556019546103e890610c52906005612fc9565b610c5c9190612ffd565b602555600160066000610c776000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526006909252812080548316600190811790915561dead82527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2280549093168117909255600590610cfe6000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610d46737a250d5630b4cf539739df2c5dacb4c659f2488d6000196108f5565b50610d64610d5c6000546001600160a01b031690565b6000196108f5565b50600b805460ff19166001908117909155601954906000610d8d6000546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002055610dd9610dbc6000546001600160a01b031690565b737a250d5630b4cf539739df2c5dacb4c659f2488d601954611c1b565b6000546001600160a01b03166001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601954604051610e2c91815260200190565b60405180910390a3600080546103e890610e4e906001600160a01b0316611378565b610e5a90610320612fc9565b610e649190612ffd565b600054601b54919250610e86916001600160a01b039182169116600019611c1b565b601b54610ea09030906001600160a01b0316600019611c1b565b600054610eb7906001600160a01b03163083611d14565b50601b546001600160a01b031663f305d7194730610ed481611378565b600080610ee96000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610f0b9695949392919061301f565b60606040518083038185885af1158015610f29573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f4e919061305a565b50505050505050565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610fbc576001600160a01b038416600090815260046020908152604080832033845290915281208054849290610fb6908490613088565b90915550505b610fc7848484611d14565b949350505050565b6000546001600160a01b03163314610ff95760405162461bcd60e51b815260040161093690612d90565b6000818360195461100a9190612fc9565b6110149190612ffd565b905061012c6019546110269190612ffd565b8110156110455760405162461bcd60e51b81526004016109369061309b565b6023555050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916109029185906110839086906130e0565b611c1b565b6000546001600160a01b031633146110b25760405162461bcd60e51b815260040161093690612d90565b600081836019546110c39190612fc9565b6110cd9190612ffd565b905061012c6019546110df9190612ffd565b8110156110fe5760405162461bcd60e51b81526004016109369061309b565b6020555050565b6000546001600160a01b0316331461112f5760405162461bcd60e51b815260040161093690612d90565b6001600160a01b0381166111555760405162461bcd60e51b8152600401610936906130f3565b61deac196001600160a01b038216016111805760405162461bcd60e51b8152600401610936906130f3565b60008054611199916001600160a01b03909116906112a6565b6111a48160016112a6565b600054601d546001600160a01b039182169116036111d857601d80546001600160a01b0319166001600160a01b0383161790555b6000546111ed906001600160a01b0316611378565b600080546001600160a01b0390811682526004602090815260408084208684168552909152822092909255805490916112269116611378565b111561124d5760005461124b906001600160a01b03168261124682611378565b611d14565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000610906826000196108f5565b6000546001600160a01b031633146112d05760405162461bcd60e51b815260040161093690612d90565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113255760405162461bcd60e51b815260040161093690612d90565b61132f81836130e0565b61044c1461136d5760405162461bcd60e51b815260206004820152600b60248201526a6c696d697420746178657360a81b6044820152606401610936565b601691909155601755565b6001600160a01b031660009081526001602052604090205490565b6000546001600160a01b031633146113bd5760405162461bcd60e51b815260040161093690612d90565b600080546113d6916001600160a01b03909116906112a6565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b0316331461143c5760405162461bcd60e51b815260040161093690612d90565b80151560000361146857506001600160a01b03166000908152600260205260409020805460ff19169055565b600354156114c45762093a80600354426114829190613088565b116114c45760405162461bcd60e51b815260206004820152601260248201527127b732903bb2b2b59031b7b7b63237bbb71760711b6044820152606401610936565b6001600160a01b0382166000908152600260205260409020805460ff19166001179055426003555b5050565b6060600f805461087290612d56565b6000546001600160a01b031633146115295760405162461bcd60e51b815260040161093690612d90565b60005b825181101561162c576002600084838151811061154b5761154b613150565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff161580156115be5750737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03168382815181106115aa576115aa613150565b60200260200101516001600160a01b031614155b1561161a5781600860008584815181106115da576115da613150565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8061162481613166565b91505061152c565b505050565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610902918590611083908690613088565b6000611675338484611d14565b5060019392505050565b6000546001600160a01b031633146116a95760405162461bcd60e51b815260040161093690612d90565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b031633146116f45760405162461bcd60e51b815260040161093690612d90565b601d8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061174190831515815260200190565b60405180910390a150565b6000546001600160a01b031633146117765760405162461bcd60e51b815260040161093690612d90565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000546001600160a01b031633146117c45760405162461bcd60e51b815260040161093690612d90565b602754156117fd5760405162461bcd60e51b815260206004820152600660248201526522b93937b91760d11b6044820152606401610936565b602755565b6000546001600160a01b0316331461182c5760405162461bcd60e51b815260040161093690612d90565b601092909255601155601255565b6000546001600160a01b031633146118645760405162461bcd60e51b815260040161093690612d90565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cd9190612fe0565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561191a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193e9190612fe0565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ad9190612fe0565b90506001600160a01b038116611b2657816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1f9190612fe0565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a909190612fe0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b019190612fe0565b601c80546001600160a01b0319166001600160a01b0392909216919091179055611b42565b601c80546001600160a01b0319166001600160a01b0383161790555b50601b80546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b03163314611b905760405162461bcd60e51b815260040161093690612d90565b601d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611bdc5760405162461bcd60e51b815260040161093690612d90565b8284601954611beb9190612fc9565b611bf59190612ffd565b6024556019548190611c08908490612fc9565b611c129190612ffd565b60255550505050565b6001600160a01b038316611c675760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610936565b6001600160a01b038216611cb35760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610936565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611d635760405162461bcd60e51b815260206004820152601460248201527322a92199181d102d32b9379030b2323932b9b99760611b6044820152606401610936565b6001600160a01b038316611db05760405162461bcd60e51b815260206004820152601460248201527322a92199181d102d32b9379030b2323932b9b99760611b6044820152606401610936565b60008211611deb5760405162461bcd60e51b815260206004820152600860248201526726bab9ba101f181760c11b6044820152606401610936565b6001600160a01b03831660009081526008602052604090205460ff16158015611e2d57506001600160a01b03841660009081526008602052604090205460ff16155b611e6b5760405162461bcd60e51b815260206004820152600f60248201526e756e61626c6520746f20747261646560881b6044820152606401610936565b611e7584846121c8565b156120b55760095460ff1615611f2c576001600160a01b03841660009081526002602052604090205460ff1615611eeb576001600160a01b0383166000908152600a6020526040902054439003611ecb57600080fd5b6001600160a01b0383166000908152600a60205260409020439055611f2c565b6001600160a01b0384166000908152600a6020526040902054439003611f1057600080fd5b6001600160a01b0384166000908152600a602052604090204390555b6001600160a01b03841660009081526007602052604090205460ff1680611f6b57506001600160a01b03831660009081526007602052604090205460ff165b6120b5576001600160a01b03841660009081526002602052604090205460ff1680611fae57506001600160a01b03831660009081526002602052604090205460ff165b15612005576020548211156120055760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e00000000000000006044820152606401610936565b6001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d1480159061204b57506001600160a01b03831660009081526002602052604090205460ff16155b156120b5576023548261205d85611378565b61206791906130e0565b11156120b55760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610936565b6001600160a01b03831660009081526001602052604081205490036120f0576001600160a01b0383166000908152600c602052604090204290555b6001600160a01b03841660009081526006602052604090205460019060ff168061213257506001600160a01b03841660009081526006602052604090205460ff165b1561213b575060005b6001600160a01b03841660009081526002602052604090205460ff16156121b357601d54600160a01b900460ff1615801561217f5750601d54600160a81b900460ff165b156121b357600061218f30611378565b905060245481106121b15760255481106121a857506025545b6121b181612286565b505b6121bf858585846123fd565b95945050505050565b600080546001600160a01b038481169116148015906121f557506000546001600160a01b03838116911614155b801561221a57506001600160a01b03821660009081526005602052604090205460ff16155b801561223f57506001600160a01b03831660009081526005602052604090205460ff16155b801561225657506001600160a01b03821661dead14155b801561226a57506001600160a01b03821615155b801561227f57506001600160a01b0383163014155b9392505050565b601d805460ff60a01b1916600160a01b1790556017546016546122a991906130e0565b156123ed576017546016546000916002916122c491906130e0565b6016546122d19085612fc9565b6122db9190612ffd565b6122e59190612ffd565b905060006122f38284613088565b90506122fe8161255a565b6017546016544791600091600291612315916130e0565b6016546123229085612fc9565b61232c9190612ffd565b6123369190612ffd565b9050831561238a57612348848261269b565b60408051858152602081018390529081018590527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b47156123e857601d546040516001916001600160a01b0316904790600081818185875af1925050503d80600081146123de576040519150601f19603f3d011682016040523d82523d6000602084013e6123e3565b606091505b505050505b505050505b50601d805460ff60a01b19169055565b60265460009060ff16612487576124148585612730565b60265460ff1615801561242c575061242c85856121c8565b156124875760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b6064820152608401610936565b6001600160a01b038516600090815260016020526040812080548592906124af908490613088565b9091555060009050826124c257836124cd565b6124cd86868661283e565b6001600160a01b0386166000908152600160205260408120805492935083929091906124fa9084906130e0565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161254691815260200190565b60405180910390a350600195945050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061258f5761258f613150565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156125e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061260c9190612fe0565b8160018151811061261f5761261f613150565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b815291169063791ac9479061266590859060009086903090429060040161317f565b600060405180830381600087803b15801561267f57600080fd5b505af1158015612693573d6000803e3d6000fd5b505050505050565b601b546001600160a01b031663f305d7198230856000806126c46000546001600160a01b031690565b426040518863ffffffff1660e01b81526004016126e69695949392919061301f565b60606040518083038185885af1158015612704573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612729919061305a565b5050505050565b60265460ff161561278f5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610936565b61279982826121c8565b1580156127b35750601c546001600160a01b038281169116145b156114ec57436028556001600160a01b038216600090815260056020908152604091829020805460ff199081166001908117909255602680549091168217905542602955601d805460ff60a81b1916600160a81b17905591519182527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159910160405180910390a15050565b601c5460009081906001600160a01b03908116908516036128625750601154612886565b601c546001600160a01b03908116908616036128815750601054612886565b506012545b61289085856121c8565b156128b15760275415806128a75750602754600114155b156128b157600080fd5b60006127106128c08386612fc9565b6128ca9190612ffd565b306000908152600160205260408120805492935083929091906128ee9084906130e0565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361293d8185613088565b9695505050505050565b600060208083528351808285015260005b8181101561297457858101830151858201604001528201612958565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146129aa57600080fd5b50565b600080604083850312156129c057600080fd5b82356129cb81612995565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612a1857612a186129d9565b604052919050565b600082601f830112612a3157600080fd5b813567ffffffffffffffff811115612a4b57612a4b6129d9565b612a5e601f8201601f19166020016129ef565b818152846020838601011115612a7357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215612aa557600080fd5b833567ffffffffffffffff80821115612abd57600080fd5b612ac987838801612a20565b94506020860135915080821115612adf57600080fd5b50612aec86828701612a20565b925050604084013590509250925092565b600080600060608486031215612b1257600080fd5b8335612b1d81612995565b92506020840135612b2d81612995565b929592945050506040919091013590565b60008060408385031215612b5157600080fd5b50508035926020909101359150565b600060208284031215612b7257600080fd5b813561227f81612995565b80358015158114612b8d57600080fd5b919050565b60008060408385031215612ba557600080fd5b8235612bb081612995565b9150612bbe60208401612b7d565b90509250929050565b60008060408385031215612bda57600080fd5b823567ffffffffffffffff80821115612bf257600080fd5b818501915085601f830112612c0657600080fd5b8135602082821115612c1a57612c1a6129d9565b8160051b9250612c2b8184016129ef565b8281529284018101928181019089851115612c4557600080fd5b948201945b84861015612c6f5785359350612c5f84612995565b8382529482019490820190612c4a565b9650612c7e9050878201612b7d565b9450505050509250929050565b600060208284031215612c9d57600080fd5b61227f82612b7d565b60008060408385031215612cb957600080fd5b8235612cc481612995565b91506020830135612cd481612995565b809150509250929050565b600060208284031215612cf157600080fd5b5035919050565b600080600060608486031215612d0d57600080fd5b505081359360208301359350604090920135919050565b60008060008060808587031215612d3a57600080fd5b5050823594602084013594506040840135936060013592509050565b600181811c90821680612d6a57607f821691505b602082108103612d8a57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526010908201526f21b0b63632b910109e9037bbb732b91760811b604082015260600190565b601f82111561162c57600081815260208120601f850160051c81016020861015612de15750805b601f850160051c820191505b8181101561269357828155600101612ded565b815167ffffffffffffffff811115612e1a57612e1a6129d9565b612e2e81612e288454612d56565b84612dba565b602080601f831160018114612e635760008415612e4b5750858301515b600019600386901b1c1916600185901b178555612693565b600085815260208120601f198616915b82811015612e9257888601518255948401946001909101908401612e73565b5085821015612eb05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612f11578160001904821115612ef757612ef7612ec0565b80851615612f0457918102915b93841c9390800290612edb565b509250929050565b600082612f2857506001610906565b81612f3557506000610906565b8160018114612f4b5760028114612f5557612f71565b6001915050610906565b60ff841115612f6657612f66612ec0565b50506001821b610906565b5060208310610133831016604e8410600b8410161715612f94575081810a610906565b612f9e8383612ed6565b8060001904821115612fb257612fb2612ec0565b029392505050565b600061227f60ff841683612f19565b808202811582820484141761090657610906612ec0565b600060208284031215612ff257600080fd5b815161227f81612995565b60008261301a57634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561306f57600080fd5b8351925060208401519150604084015190509250925092565b8181038181111561090657610906612ec0565b60208082526025908201527f4d7573742062652061626f766520302e33337e25206f6620746f74616c2073756040820152643838363c9760d91b606082015260800190565b8082018082111561090657610906612ec0565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006001820161317857613178612ec0565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131cf5784516001600160a01b0316835293830193918301916001016131aa565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212205390c0e14fae3b617833ab14f0d8e104da1e6e198917db63b096ee5ecab6420264736f6c63430008110033
Deployed Bytecode Sourcemap
3708:19481:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5708:73;;;;;;;;;;;;5739:42;5708:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;5708:73:0;;;;;;;;9400:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5537:35::-;;;;;;;;;;-1:-1:-1;5537:35:0;;;;-1:-1:-1;;;;;5537:35:0;;;10013:161;;;;;;;;;;-1:-1:-1;10013:161:0;;;;;:::i;:::-;;:::i;:::-;;;1630:14:1;;1623:22;1605:41;;1593:2;1578:18;10013:161:0;1465:187:1;5854:25:0;;;;;;;;;;-1:-1:-1;5854:25:0;;;;-1:-1:-1;;;;;5854:25:0;;;9135:83;;;;;;;;;;-1:-1:-1;9208:7:0;;9135:83;;;1803:25:1;;;1791:2;1776:18;9135:83:0;1657:177:1;12754:2202:0;;;;;;:::i;:::-;;:::i;:::-;;10746:306;;;;;;;;;;-1:-1:-1;10746:306:0;;;;;:::i;:::-;;:::i;16170:257::-;;;;;;;;;;-1:-1:-1;16170:257:0;;;;;:::i;:::-;;:::i;9224:80::-;;;;;;;;;;-1:-1:-1;9292:9:0;;9224:80;;9292:9;;;;4259:36:1;;4247:2;4232:18;9224:80:0;4117:184:1;11060:215:0;;;;;;;;;;-1:-1:-1;11060:215:0;;;;;:::i;:::-;;:::i;4739:77::-;;;;;;;;;;-1:-1:-1;4739:77:0;;;;;;;;;;;;;;;;4508:25:1;;;4564:2;4549:18;;4542:34;;;;4592:18;;;4585:34;4496:2;4481:18;4739:77:0;4306:319:1;15910:252:0;;;;;;;;;;-1:-1:-1;15910:252:0;;;;;:::i;:::-;;:::i;5579:21::-;;;;;;;;;;-1:-1:-1;5579:21:0;;;;-1:-1:-1;;;;;5579:21:0;;;5920:41;;;;;;;;;;-1:-1:-1;5920:41:0;;;;-1:-1:-1;;;5920:41:0;;;;;;7824:749;;;;;;;;;;-1:-1:-1;7824:749:0;;;;;:::i;:::-;;:::i;11516:125::-;;;;;;;;;;-1:-1:-1;11516:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;11605:28:0;11581:4;11605:28;;;:19;:28;;;;;;;;;11516:125;6273:36;;;;;;;;;;-1:-1:-1;6273:36:0;;;;;;;;10499:120;;;;;;;;;;-1:-1:-1;10499:120:0;;;;;:::i;:::-;;:::i;14964:134::-;;;;;;;;;;-1:-1:-1;14964:134:0;;;;;:::i;:::-;;:::i;15454:232::-;;;;;;;;;;-1:-1:-1;15454:232:0;;;;;:::i;:::-;;:::i;9713:117::-;;;;;;;;;;-1:-1:-1;9713:117:0;;;;;:::i;:::-;;:::i;8581:195::-;;;;;;;;;;;;;:::i;12162:410::-;;;;;;;;;;-1:-1:-1;12162:410:0;;;;;:::i;:::-;;:::i;9486:80::-;;;;;;;;;;-1:-1:-1;9538:7:0;7802:6;-1:-1:-1;;;;;7802:6:0;9486:80;;4181:68;;;;;;;;;;-1:-1:-1;4181:68:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9310:84;;;;;;;;;;;;;:::i;10627:111::-;;;;;;;;;;-1:-1:-1;10627:111:0;;;;;:::i;:::-;-1:-1:-1;;;;;10713:17:0;10686:7;10713:17;;;:8;:17;;;;;;;10627:111;17052:324;;;;;;;;;;-1:-1:-1;17052:324:0;;;;;:::i;:::-;;:::i;11283:225::-;;;;;;;;;;-1:-1:-1;11283:225:0;;;;;:::i;:::-;;:::i;9838:167::-;;;;;;;;;;-1:-1:-1;9838:167:0;;;;;:::i;:::-;;:::i;3820:21::-;;;;;;;;;;-1:-1:-1;3820:21:0;;;;-1:-1:-1;;;;;3820:21:0;;;5208:84;;;;;;;;;;-1:-1:-1;5208:84:0;;;;;;;;;;;;;6637:25:1;;;6693:2;6678:18;;6671:34;;;;6610:18;5208:84:0;6463:248:1;15274:166:0;;;;;;;;;;-1:-1:-1;15274:166:0;;;;;:::i;:::-;;:::i;16868:171::-;;;;;;;;;;-1:-1:-1;16868:171:0;;;;;:::i;:::-;;:::i;15108:158::-;;;;;;;;;;-1:-1:-1;15108:158:0;;;;;:::i;:::-;;:::i;9572:133::-;;;;;;;;;;-1:-1:-1;9572:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9674:19:0;;;9656:7;9674:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9572:133;12580:164;;;;;;;;;;-1:-1:-1;12580:164:0;;;;;:::i;:::-;;:::i;4967:92::-;;;;;;;;;;-1:-1:-1;4967:92:0;;;;;;;;;;;;15696:206;;;;;;;;;;-1:-1:-1;15696:206:0;;;;;:::i;:::-;;:::i;11653:501::-;;;;;;;;;;-1:-1:-1;11653:501:0;;;;;:::i;:::-;;:::i;16732:128::-;;;;;;;;;;-1:-1:-1;16732:128:0;;;;;:::i;:::-;;:::i;16435:289::-;;;;;;;;;;-1:-1:-1;16435:289:0;;;;;:::i;:::-;;:::i;9400:80::-;9448:13;9472:5;9465:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9400:80;:::o;10013:161::-;10088:4;10105:39;260:10;10128:7;10137:6;10105:8;:39::i;:::-;-1:-1:-1;10162:4:0;10013:161;;;;;:::o;12754:2202::-;7019:6;;-1:-1:-1;;;;;7019:6:0;260:10;7019:22;7011:51;;;;-1:-1:-1;;;7011:51:0;;;;;;;:::i;:::-;;;;;;;;;12892:13:::1;::::0;::::1;;12891:14;12883:56;;;::::0;-1:-1:-1;;;12883:56:0;;9382:2:1;12883:56:0::1;::::0;::::1;9364:21:1::0;9421:2;9401:18;;;9394:30;9460:31;9440:18;;;9433:59;9509:18;;12883:56:0::1;9180:353:1::0;12883:56:0::1;12958:13;::::0;:18;12950:27:::1;;;::::0;::::1;;12998:5;:16;13006:8:::0;12998:5;:16:::1;:::i;:::-;-1:-1:-1::0;13025:7:0::1;:20;13035:10:::0;13025:7;:20:::1;:::i;:::-;-1:-1:-1::0;13058:14:0::1;:27:::0;;;13096:9:::1;:14:::0;;-1:-1:-1;;13096:14:0::1;13108:2;13096:14:::0;;::::1;::::0;;;13148:13:::1;::::0;:2:::1;:13;:::i;:::-;13131:14;;:30;;;;:::i;:::-;13121:7;:40:::0;13174:9:::1;:46:::0;;-1:-1:-1;;;;;;13174:46:0::1;5653:42;13174:46:::0;;::::1;::::0;;;13258:19:::1;::::0;;-1:-1:-1;;;13258:19:0;;;;:17:::1;::::0;:19:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;5653:42;13258:19:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13240:49:0::1;;13290:9;;;;;;;;;-1:-1:-1::0;;;;;13290:9:0::1;-1:-1:-1::0;;;;;13290:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13240:82;::::0;-1:-1:-1;;;;;;13240:82:0::1;::::0;;;;;;-1:-1:-1;;;;;13916:15:1;;;13240:82:0::1;::::0;::::1;13898:34:1::0;13316:4:0::1;13948:18:1::0;;;13941:43;13833:18;;13240:82:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13231:6;:91:::0;;-1:-1:-1;;;;;;13231:91:0;;::::1;-1:-1:-1::0;;;;;13231:91:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;13333:15:0;;;:7:::1;:15;::::0;;;;;;;:22;;-1:-1:-1;;13333:22:0::1;-1:-1:-1::0;13333:22:0::1;::::0;;13386:4:::1;13366:26:::0;;:11:::1;:26:::0;;;;;13401:9:::1;::::0;;::::1;13366:46:::0;;;;;;;-1:-1:-1;;13366:66:0;;7802:6;;13445:10:::1;:29:::0;;7802:6;;;;13445:29;::::1;;::::0;;13502:3:::1;13487:12;:18:::0;;;13567:5:::1;13552:12;:20:::0;;;13599:7:::1;::::0;13567:5;;13599:22:::1;::::0;::::1;:::i;:::-;13598:39;;;;:::i;:::-;13583:12;:54:::0;13677:3:::1;13658:16;:22:::0;;;13731:5:::1;13712:16;:24:::0;;;13765:7:::1;::::0;13731:5;;13765:26:::1;::::0;::::1;:::i;:::-;13764:47;;;;:::i;:::-;13747:14;:64:::0;13849:7:::1;::::0;13864:6:::1;::::0;13849:11:::1;::::0;13859:1:::1;13849:11;:::i;:::-;13848:22;;;;:::i;:::-;13832:13;:38:::0;13895:7:::1;::::0;13910:5:::1;::::0;13895:11:::1;::::0;13905:1:::1;13895:11;:::i;:::-;13894:21;;;;:::i;:::-;13881:10;:34:::0;13959:4:::1;13928:19;:28;13948:7;7775::::0;7802:6;-1:-1:-1;;;;;7802:6:0;;7737:79;13948:7:::1;-1:-1:-1::0;;;;;13928:28:0::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;13928:28:0;;;:35;;;::::1;;-1:-1:-1::0;;13928:35:0;;::::1;;::::0;;14002:4:::1;13974:34:::0;;:19:::1;:34:::0;;;;;:41;;;::::1;13928:35:::0;13974:41;;::::1;::::0;;;5739:42:::1;14026:25:::0;;;:32;;;;::::1;::::0;::::1;::::0;;;14069:17:::1;::::0;14087:7:::1;7775::::0;7802:6;-1:-1:-1;;;;;7802:6:0;;7737:79;14087:7:::1;-1:-1:-1::0;;;;;14069:26:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14069:26:0;:33;;-1:-1:-1;;14069:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14117:42:::1;5653;-1:-1:-1::0;;14117:7:0::1;:42::i;:::-;;14170:35;14178:7;7775::::0;7802:6;-1:-1:-1;;;;;7802:6:0;;7737:79;14178:7:::1;-1:-1:-1::0;;14170:7:0::1;:35::i;:::-;-1:-1:-1::0;14220:13:0::1;:20:::0;;-1:-1:-1;;14220:20:0::1;14236:4;14220:20:::0;;::::1;::::0;;;14270:7:::1;::::0;;14220:13:::1;14259:7;7775::::0;7802:6;-1:-1:-1;;;;;7802:6:0;;7737:79;14259:7:::1;-1:-1:-1::0;;;;;14251:16:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14251:16:0;:26;14288:42:::1;14297:7;7775::::0;7802:6;-1:-1:-1;;;;;7802:6:0;;7737:79;14297:7:::1;5653:42;14322:7;;14288:8;:42::i;:::-;7775:7:::0;7802:6;-1:-1:-1;;;;;7802:6:0;-1:-1:-1;;;;;14346:38:0::1;14363:1;-1:-1:-1::0;;;;;14346:38:0::1;;14376:7;;14346:38;;;;1803:25:1::0;;1791:2;1776:18;;1657:177;14346:38:0::1;;;;;;;;14400:24;14438:6:::0;;14455:5:::1;::::0;14428:17:::1;::::0;-1:-1:-1;;;;;14438:6:0::1;14428:9;:17::i;:::-;:23;::::0;14448:3:::1;14428:23;:::i;:::-;14427:33;;;;:::i;:::-;14482:6;::::0;14498:9:::1;::::0;14400:60;;-1:-1:-1;14473:55:0::1;::::0;-1:-1:-1;;;;;14482:6:0;;::::1;::::0;14498:9:::1;-1:-1:-1::0;;14473:8:0::1;:55::i;:::-;14571:9;::::0;14539:62:::1;::::0;14556:4:::1;::::0;-1:-1:-1;;;;;14571:9:0::1;-1:-1:-1::0;;14539:8:0::1;:62::i;:::-;14624:6;::::0;14614:50:::1;::::0;-1:-1:-1;;;;;14624:6:0::1;14640:4;14647:16:::0;14614:9:::1;:50::i;:::-;-1:-1:-1::0;14677:9:0::1;::::0;-1:-1:-1;;;;;14677:9:0::1;:25;14710:21;14755:4;14775:24;14755:4:::0;14775:9:::1;:24::i;:::-;14814:1;14857::::0;14900:7:::1;7775::::0;7802:6;-1:-1:-1;;;;;7802:6:0;;7737:79;14900:7:::1;14922:15;14677:271;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12872:2084;12754:2202:::0;;;:::o;10746:306::-;-1:-1:-1;;;;;10867:19:0;;10846:4;10867:19;;;:11;:19;;;;;;;;10887:10;10867:31;;;;;;;;-1:-1:-1;;10867:52:0;10863:126;;-1:-1:-1;;;;;10936:19:0;;;;;;:11;:19;;;;;;;;10956:10;10936:31;;;;;;;:41;;10971:6;;10936:19;:41;;10971:6;;10936:41;:::i;:::-;;;;-1:-1:-1;;10863:126:0;11008:36;11018:6;11026:9;11037:6;11008:9;:36::i;:::-;11001:43;10746:306;-1:-1:-1;;;;10746:306:0:o;16170:257::-;7019:6;;-1:-1:-1;;;;;7019:6:0;260:10;7019:22;7011:51;;;;-1:-1:-1;;;7011:51:0;;;;;;;:::i;:::-;16254:13:::1;16292:7;16281;16271;;:17;;;;:::i;:::-;16270:29;;;;:::i;:::-;16254:45;;16338:3;16328:7;;:13;;;;:::i;:::-;16318:5;:24;;16310:74;;;;-1:-1:-1::0;;;16310:74:0::1;;;;;;;:::i;:::-;16395:14;:22:::0;-1:-1:-1;;16170:257:0:o;11060:215::-;260:10;11148:4;11197:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11197:34:0;;;;;;;;;;11148:4;;11165:80;;11188:7;;11197:47;;11234:10;;11197:47;:::i;:::-;11165:8;:80::i;15910:252::-;7019:6;;-1:-1:-1;;;;;7019:6:0;260:10;7019:22;7011:51;;;;-1:-1:-1;;;7011:51:0;;;;;;;:::i;:::-;15993:13:::1;16031:7;16020;16010;;:17;;;;:::i;:::-;16009:29;;;;:::i;:::-;15993:45;;16077:3;16067:7;;:13;;;;:::i;:::-;16057:5;:24;;16049:74;;;;-1:-1:-1::0;;;16049:74:0::1;;;;;;;:::i;:::-;16134:12;:20:::0;-1:-1:-1;;15910:252:0:o;7824:749::-;7019:6;;-1:-1:-1;;;;;7019:6:0;260:10;7019:22;7011:51;;;;-1:-1:-1;;;7011:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7905:22:0;::::1;7897:96;;;;-1:-1:-1::0;;;7897:96:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;;8012:16:0;::::1;::::0;8004:90:::1;;;;-1:-1:-1::0;;;8004:90:0::1;;;;;;;:::i;:::-;8125:6;::::0;;8105:34:::1;::::0;-1:-1:-1;;;;;8125:6:0;;::::1;::::0;8105:19:::1;:34::i;:::-;8150:35;8170:8;8180:4;8150:19;:35::i;:::-;8232:6;::::0;8210:10:::1;::::0;-1:-1:-1;;;;;8232:6:0;;::::1;8210:10:::0;::::1;:29:::0;8206:78:::1;;8254:10;:30:::0;;-1:-1:-1;;;;;;8254:30:0::1;-1:-1:-1::0;;;;;8254:30:0;::::1;;::::0;;8206:78:::1;8347:6;::::0;8337:17:::1;::::0;-1:-1:-1;;;;;8347:6:0::1;8337:9;:17::i;:::-;8305:19;8317:6:::0;;-1:-1:-1;;;;;8317:6:0;;::::1;8305:19:::0;;:11:::1;:19;::::0;;;;;;;:29;;::::1;::::0;;;;;;;:49;;;;8378:6;;8305:19;;8368:17:::1;::::0;8378:6:::1;8368:9;:17::i;:::-;:21;8365:99;;;8416:6;::::0;8406:46:::1;::::0;-1:-1:-1;;;;;8416:6:0::1;8424:8:::0;8434:17:::1;8416:6:::0;8434:9:::1;:17::i;:::-;8406:9;:46::i;:::-;;8365:99;8484:6;:17:::0;;-1:-1:-1;;;;;;8484:17:0::1;-1:-1:-1::0;;;;;8484:17:0;::::1;::::0;;::::1;::::0;;8517:38:::1;::::0;8484:17;;;;8517:38:::1;::::0;8484:6;8517:38:::1;7824:749:::0;:::o;10499:120::-;10552:4;10576:35;10584:7;-1:-1:-1;;10576:7:0;:35::i;14964:134::-;7019:6;;-1:-1:-1;;;;;7019:6:0;260:10;7019:22;7011:51;;;;-1:-1:-1;;;7011:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15052:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;15052:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14964:134::o;15454:232::-;7019:6;;-1:-1:-1;;;;;7019:6:0;260:10;7019:22;7011:51;;;;-1:-1:-1;;;7011:51:0;;;;;;;:::i;:::-;15548:21:::1;15559:10:::0;15548;:21:::1;:::i;:::-;15574:4;15547:31;15537:57;;;::::0;-1:-1:-1;;;15537:57:0;;16441:2:1;15537:57:0::1;::::0;::::1;16423:21:1::0;16480:2;16460:18;;;16453:30;-1:-1:-1;;;16499:18:1;;;16492:41;16550:18;;15537:57:0::1;16239:335:1::0;15537:57:0::1;15605:6;:29:::0;;;;15645:16;:29;15454:232::o;9713:117::-;-1:-1:-1;;;;;9806:16:0;9779:7;9806:16;;;:7;:16;;;;;;;9713:117::o;8581:195::-;7019:6;;-1:-1:-1;;;;;7019:6:0;260:10;7019:22;7011:51;;;;-1:-1:-1;;;7011:51:0;;;;;;;:::i;:::-;8668:6:::1;::::0;;8648:34:::1;::::0;-1:-1:-1;;;;;8668:6:0;;::::1;::::0;8648:19:::1;:34::i;:::-;8710:1;8693:19:::0;;-1:-1:-1;;;;;;8693:19:0::1;::::0;;8728:40:::1;::::0;8710:1;;8728:40:::1;::::0;8710:1;;8728:40:::1;8581:195::o:0;12162:410::-;7019:6;;-1:-1:-1;;;;;7019:6:0;260:10;7019:22;7011:51;;;;-1:-1:-1;;;7011:51:0;;;;;;;:::i;:::-;12243:16;::::1;;12254:5;12243:16:::0;12239:326:::1;;-1:-1:-1::0;;;;;;12276:13:0::1;12292:5;12276:13:::0;;;:7:::1;:13;::::0;;;;:21;;-1:-1:-1;;12276:21:0::1;::::0;;12162:410::o;12239:326::-:1;12334:17;::::0;:22;12330:139:::1;;12423:7;12403:17;;12385:15;:35;;;;:::i;:::-;:45;12377:76;;;::::0;-1:-1:-1;;;12377:76:0;;16781:2:1;12377:76:0::1;::::0;::::1;16763:21:1::0;16820:2;16800:18;;;16793:30;-1:-1:-1;;;16839:18:1;;;16832:48;16897:18;;12377:76:0::1;16579:342:1::0;12377:76:0::1;-1:-1:-1::0;;;;;12483:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;:20;;-1:-1:-1;;12483:20:0::1;12499:4;12483:20;::::0;;12538:15:::1;12518:17;:35:::0;12239:326:::1;12162:410:::0;;:::o;9310:84::-;9360:13;9384:7;9377:14;;;;;:::i;17052:324::-;7019:6;;-1:-1:-1;;;;;7019:6:0;260:10;7019:22;7011:51;;;;-1:-1:-1;;;7011:51:0;;;;;;;:::i;:::-;17148:6:::1;17143:226;17164:12;:19;17160:1;:23;17143:226;;;17210:7;:24;17218:12;17231:1;17218:15;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;17210:24:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;17210:24:0;;::::1;;17209:25;:71:::0;::::1;;;;5653:42;-1:-1:-1::0;;;;;17238:42:0::1;:12;17251:1;17238:15;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;17238:42:0::1;;;17209:71;17205:153;;;17335:7;17301:14;:31;17316:12;17329:1;17316:15;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;17301:31:0::1;-1:-1:-1::0;;;;;17301:31:0::1;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;17205:153;17185:3:::0;::::1;::::0;::::1;:::i;:::-;;;;17143:226;;;;17052:324:::0;;:::o;11283:225::-;260:10;11376:4;11425:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11425:34:0;;;;;;;;;;11376:4;;11393:85;;11416:7;;11425:52;;11462:15;;11425:52;:::i;9838:167::-;9916:4;9933:42;260:10;9957:9;9968:6;9933:9;:42::i;:::-;-1:-1:-1;9993:4:0;;9838:167;-1:-1:-1;;;9838:167:0:o;15274:166::-;7019:6;;-1:-1:-1;;;;;7019:6:0;260:10;7019:22;7011:51;;;;-1:-1:-1;;;7011:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15372:52:0::1;15427:5;15372:52:::0;;;:35:::1;:52;::::0;;;;:60;;-1:-1:-1;;15372:60:0::1;::::0;;15274:166::o;16868:171::-;7019:6;;-1:-1:-1;;;;;7019:6:0;260:10;7019:22;7011:51;;;;-1:-1:-1;;;7011:51:0;;;;;;;:::i;:::-;16945:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;16945:32:0::1;-1:-1:-1::0;;;;16945:32:0;;::::1;;::::0;;16993:38:::1;::::0;::::1;::::0;::::1;::::0;16969:8;1630:14:1;1623:22;1605:41;;1593:2;1578:18;;1465:187;16993:38:0::1;;;;;;;;16868:171:::0;:::o;15108:158::-;7019:6;;-1:-1:-1;;;;;7019:6:0;260:10;7019:22;7011:51;;;;-1:-1:-1;;;7011:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15199:52:0::1;;::::0;;;:35:::1;:52;::::0;;;;:59;;-1:-1:-1;;15199:59:0::1;15254:4;15199:59;::::0;;15108:158::o;12580:164::-;7019:6;;-1:-1:-1;;;;;7019:6:0;260:10;7019:22;7011:51;;;;-1:-1:-1;;;7011:51:0;;;;;;;:::i;:::-;12668:13:::1;::::0;:18;12659:38:::1;;;::::0;-1:-1:-1;;;12659:38:0;;17400:2:1;12659:38:0::1;::::0;::::1;17382:21:1::0;17439:1;17419:18;;;17412:29;-1:-1:-1;;;17457:18:1;;;17450:36;17503:18;;12659:38:0::1;17198:329:1::0;12659:38:0::1;12708:13;:28:::0;12580:164::o;15696:206::-;7019:6;;-1:-1:-1;;;;;7019:6:0;260:10;7019:22;7011:51;;;;-1:-1:-1;;;7011:51:0;;;;;;;:::i;:::-;15793:4:::1;:21:::0;;;;15826:12;:23;15861:16;:31;15696:206::o;11653:501::-;7019:6;;-1:-1:-1;;;;;7019:6:0;260:10;7019:22;7011:51;;;;-1:-1:-1;;;7011:51:0;;;;;;;:::i;:::-;11724:29:::1;11775:9;11724:61;;11796:16;11833:10;-1:-1:-1::0;;;;;11833:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11815:47:0::1;;11871:4;11878:10;-1:-1:-1::0;;;;;11878:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11815:81;::::0;-1:-1:-1;;;;;;11815:81:0::1;::::0;;;;;;-1:-1:-1;;;;;13916:15:1;;;11815:81:0::1;::::0;::::1;13898:34:1::0;13968:15;;13948:18;;;13941:43;13833:18;;11815:81:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11796:100:::0;-1:-1:-1;;;;;;11911:22:0;::::1;11907:207;;11977:10;-1:-1:-1::0;;;;;11977:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11959:50:0::1;;12018:4;12025:10;-1:-1:-1::0;;;;;12025:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11959:84;::::0;-1:-1:-1;;;;;;11959:84:0::1;::::0;;;;;;-1:-1:-1;;;;;13916:15:1;;;11959:84:0::1;::::0;::::1;13898:34:1::0;13968:15;;13948:18;;;13941:43;13833:18;;11959:84:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11950:6;:93:::0;;-1:-1:-1;;;;;;11950:93:0::1;-1:-1:-1::0;;;;;11950:93:0;;;::::1;::::0;;;::::1;::::0;;11907:207:::1;;;12085:6;:17:::0;;-1:-1:-1;;;;;;12085:17:0::1;-1:-1:-1::0;;;;;12085:17:0;::::1;;::::0;;11907:207:::1;-1:-1:-1::0;12124:9:0::1;:22:::0;;-1:-1:-1;;;;;;12124:22:0::1;-1:-1:-1::0;;;;;12124:22:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;11653:501:0:o;16732:128::-;7019:6;;-1:-1:-1;;;;;7019:6:0;260:10;7019:22;7011:51;;;;-1:-1:-1;;;7011:51:0;;;;;;;:::i;:::-;16815:10:::1;:37:::0;;-1:-1:-1;;;;;;16815:37:0::1;-1:-1:-1::0;;;;;16815:37:0;;;::::1;::::0;;;::::1;::::0;;16732:128::o;16435:289::-;7019:6;;-1:-1:-1;;;;;7019:6:0;260:10;7019:22;7011:51;;;;-1:-1:-1;;;7011:51:0;;;;;;;:::i;:::-;16635:16:::1;16615;16605:7;;:26;;;;:::i;:::-;16604:47;;;;:::i;:::-;16588:13;:63:::0;16676:7:::1;::::0;16703:13;;16676:23:::1;::::0;16686:13;;16676:23:::1;:::i;:::-;16675:41;;;;:::i;:::-;16662:10;:54:::0;-1:-1:-1;;;;16435:289:0:o;10182:309::-;-1:-1:-1;;;;;10276:20:0;;10268:52;;;;-1:-1:-1;;;10268:52:0;;17734:2:1;10268:52:0;;;17716:21:1;17773:2;17753:18;;;17746:30;-1:-1:-1;;;17792:18:1;;;17785:49;17851:18;;10268:52:0;17532:343:1;10268:52:0;-1:-1:-1;;;;;10339:21:0;;10331:53;;;;-1:-1:-1;;;10331:53:0;;17734:2:1;10331:53:0;;;17716:21:1;17773:2;17753:18;;;17746:30;-1:-1:-1;;;17792:18:1;;;17785:49;17851:18;;10331:53:0;17532:343:1;10331:53:0;-1:-1:-1;;;;;10397:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;10450:33;;1803:25:1;;;10450:33:0;;1776:18:1;10450:33:0;;;;;;;10182:309;;;:::o;17715:2003::-;17794:4;-1:-1:-1;;;;;17819:18:0;;17811:51;;;;-1:-1:-1;;;17811:51:0;;18082:2:1;17811:51:0;;;18064:21:1;18121:2;18101:18;;;18094:30;-1:-1:-1;;;18140:18:1;;;18133:50;18200:18;;17811:51:0;17880:344:1;17811:51:0;-1:-1:-1;;;;;17881:16:0;;17873:49;;;;-1:-1:-1;;;17873:49:0;;18082:2:1;17873:49:0;;;18064:21:1;18121:2;18101:18;;;18094:30;-1:-1:-1;;;18140:18:1;;;18133:50;18200:18;;17873:49:0;17880:344:1;17873:49:0;17950:1;17941:6;:10;17933:31;;;;-1:-1:-1;;;17933:31:0;;18431:2:1;17933:31:0;;;18413:21:1;18470:1;18450:18;;;18443:29;-1:-1:-1;;;18488:18:1;;;18481:38;18536:18;;17933:31:0;18229:331:1;17933:31:0;-1:-1:-1;;;;;17984:18:0;;;;;;:14;:18;;;;;;;;17983:19;:44;;;;-1:-1:-1;;;;;;18007:20:0;;;;;;:14;:20;;;;;;;;18006:21;17983:44;17975:71;;;;-1:-1:-1;;;17975:71:0;;18767:2:1;17975:71:0;;;18749:21:1;18806:2;18786:18;;;18779:30;-1:-1:-1;;;18825:18:1;;;18818:45;18880:18;;17975:71:0;18565:339:1;17975:71:0;18060:20;18071:4;18077:2;18060:10;:20::i;:::-;18057:891;;;18101:15;;;;18097:373;;;-1:-1:-1;;;;;18141:13:0;;;;;;:7;:13;;;;;;;;18137:318;;;-1:-1:-1;;;;;18186:13:0;;;;;;:9;:13;;;;;;18203:12;18186:29;;18178:38;;;;;;-1:-1:-1;;;;;18239:13:0;;;;;;:9;:13;;;;;18255:12;18239:28;;18137:318;;;-1:-1:-1;;;;;18346:15:0;;;;;;:9;:15;;;;;;18365:12;18346:31;;18338:40;;;;;;-1:-1:-1;;;;;18401:15:0;;;;;;:9;:15;;;;;18419:12;18401:30;;18137:318;-1:-1:-1;;;;;18489:41:0;;;;;;:35;:41;;;;;;;;;:84;;-1:-1:-1;;;;;;18534:39:0;;;;;;:35;:39;;;;;;;;18489:84;18484:439;;-1:-1:-1;;;;;18598:13:0;;;;;;:7;:13;;;;;;;;;:28;;-1:-1:-1;;;;;;18615:11:0;;;;;;:7;:11;;;;;;;;18598:28;18595:130;;;18664:12;;18654:6;:22;;18646:59;;;;-1:-1:-1;;;18646:59:0;;19111:2:1;18646:59:0;;;19093:21:1;19150:2;19130:18;;;19123:30;19189:26;19169:18;;;19162:54;19233:18;;18646:59:0;18909:348:1;18646:59:0;-1:-1:-1;;;;;18746:20:0;;5653:42;18746:20;;;;:36;;-1:-1:-1;;;;;;18771:11:0;;;;;;:7;:11;;;;;;;;18770:12;18746:36;18743:163;;;18841:14;;18831:6;18815:13;18825:2;18815:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;18807:79;;;;-1:-1:-1;;;18807:79:0;;19464:2:1;18807:79:0;;;19446:21:1;19503:2;19483:18;;;19476:30;19542:28;19522:18;;;19515:56;19588:18;;18807:79:0;19262:350:1;18807:79:0;-1:-1:-1;;;;;18964:11:0;;;;;;:7;:11;;;;;;:16;;18960:79;;-1:-1:-1;;;;;18997:12:0;;;;;;:8;:12;;;;;19012:15;18997:30;;18960:79;-1:-1:-1;;;;;19084:25:0;;19051:12;19084:25;;;:19;:25;;;;;;19066:4;;19084:25;;;:52;;-1:-1:-1;;;;;;19113:23:0;;;;;;:19;:23;;;;;;;;19084:52;19081:98;;;-1:-1:-1;19162:5:0;19081:98;-1:-1:-1;;;;;19195:11:0;;;;;;:7;:11;;;;;;;;19191:457;;;19228:16;;-1:-1:-1;;;19228:16:0;;;;19227:17;:59;;;;-1:-1:-1;19265:21:0;;-1:-1:-1;;;19265:21:0;;;;19227:59;19223:408;;;19321:28;19352:24;19370:4;19352:9;:24::i;:::-;19321:55;;19423:13;;19399:20;:37;19395:221;;19488:10;;19464:20;:34;19461:77;;-1:-1:-1;19525:10:0;;19461:77;19560:36;19575:20;19560:14;:36::i;:::-;19302:329;19223:408;19666:44;19684:4;19690:2;19694:6;19702:7;19666:17;:44::i;:::-;19659:51;17715:2003;-1:-1:-1;;;;;17715:2003:0:o;17384:323::-;17452:4;7802:6;;-1:-1:-1;;;;;17476:15:0;;;7802:6;;17476:15;;;;:45;;-1:-1:-1;7775:7:0;7802:6;-1:-1:-1;;;;;17508:13:0;;;7802:6;;17508:13;;17476:45;:84;;;;-1:-1:-1;;;;;;17539:21:0;;;;;;:17;:21;;;;;;;;17538:22;17476:84;:125;;;;-1:-1:-1;;;;;;17578:23:0;;;;;;:17;:23;;;;;;;;17577:24;17476:125;:152;;;;-1:-1:-1;;;;;;17618:10:0;;5739:42;17618:10;;17476:152;:185;;;;-1:-1:-1;;;;;;17645:16:0;;;;17476:185;:223;;;;-1:-1:-1;;;;;;17678:21:0;;17694:4;17678:21;;17476:223;17469:230;17384:323;-1:-1:-1;;;17384:323:0:o;19726:911::-;6893:16;:23;;-1:-1:-1;;;;6893:23:0;-1:-1:-1;;;6893:23:0;;;19834:16;;:6:::1;19815:16:::0;:35:::1;::::0;19834:16;19815:35:::1;:::i;:::-;19811:66:::0;19870:7:::1;19811:66;19972:16:::0;;:6:::1;19953:16:::0;19887:17:::1;::::0;19994:1:::1;::::0;19953:35:::1;::::0;19972:16;19953:35:::1;:::i;:::-;19932:6;:16:::0;19909:39:::1;::::0;:20;:39:::1;:::i;:::-;19908:81;;;;:::i;:::-;19907:88;;;;:::i;:::-;19887:108:::0;-1:-1:-1;20008:20:0::1;20031:32;19887:108:::0;20031:20;:32:::1;:::i;:::-;20008:55;;20074:30;20091:12;20074:16;:30::i;:::-;20260:16:::0;;:6:::1;20241:16:::0;20142:21:::1;::::0;20117:22:::1;::::0;20282:1:::1;::::0;20241:35:::1;::::0;::::1;:::i;:::-;20220:6;:16:::0;20203:33:::1;::::0;:14;:33:::1;:::i;:::-;20202:75;;;;:::i;:::-;20201:82;;;;:::i;:::-;20174:109:::0;-1:-1:-1;20300:13:0;;20296:161:::1;;20330:41;20343:9;20354:16;20330:12;:41::i;:::-;20391:54;::::0;;4508:25:1;;;4564:2;4549:18;;4542:34;;;4592:18;;;4585:34;;;20391:54:0::1;::::0;4496:2:1;4481:18;20391:54:0::1;;;;;;;20296:161;20471:21;:25:::0;20467:163:::1;;20568:10;::::0;20560:58:::1;::::0;20528:4:::1;::::0;-1:-1:-1;;;;;20568:10:0::1;::::0;20592:21:::1;::::0;20560:58:::1;::::0;;;20592:21;20568:10;20560:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;20467:163:0::1;19800:837;;;;6927:1;-1:-1:-1::0;6939:16:0;:24;;-1:-1:-1;;;;6939:24:0;;;19726:911::o;21907:582::-;22029:16;;22007:4;;22029:16;;22024:221;;22062:28;22081:4;22087:2;22062:18;:28::i;:::-;22110:16;;;;22109:17;:41;;;;;22130:20;22141:4;22147:2;22130:10;:20::i;:::-;22105:129;;;22171:47;;-1:-1:-1;;;22171:47:0;;20029:2:1;22171:47:0;;;20011:21:1;20068:2;20048:18;;;20041:30;20107:34;20087:18;;;20080:62;-1:-1:-1;;;20158:18:1;;;20151:35;20203:19;;22171:47:0;19827:401:1;22105:129:0;-1:-1:-1;;;;;22256:13:0;;;;;;:7;:13;;;;;:23;;22273:6;;22256:13;:23;;22273:6;;22256:23;:::i;:::-;;;;-1:-1:-1;22290:22:0;;-1:-1:-1;22316:7:0;22315:48;;22357:6;22315:48;;;22327:27;22337:4;22343:2;22347:6;22327:9;:27::i;:::-;-1:-1:-1;;;;;22378:11:0;;;;;;:7;:11;;;;;:29;;22290:73;;-1:-1:-1;22290:73:0;;22378:11;;;:29;;22290:73;;22378:29;:::i;:::-;;;;;;;;22440:2;-1:-1:-1;;;;;22425:34:0;22434:4;-1:-1:-1;;;;;22425:34:0;;22444:14;22425:34;;;;1803:25:1;;1791:2;1776:18;;1657:177;22425:34:0;;;;;;;;-1:-1:-1;22477:4:0;;21907:582;-1:-1:-1;;;;;21907:582:0:o;20645:417::-;20736:16;;;20750:1;20736:16;;;;;;;;20712:21;;20736:16;;;;;;;;;;-1:-1:-1;20736:16:0;20712:40;;20781:4;20763;20768:1;20763:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20763:23:0;;;:7;;;;;;;;;;:23;;;;20807:9;;:16;;;-1:-1:-1;;;20807:16:0;;;;:9;;;;;:14;;:16;;;;;20763:7;;20807:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20797:4;20802:1;20797:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20797:26:0;;;:7;;;;;;;;;:26;20836:9;;:218;;-1:-1:-1;;;20836:218:0;;:9;;;:60;;:218;;20911:11;;20836:9;;20981:4;;21008;;21028:15;;20836:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20701:361;20645:417;:::o;21070:335::-;21151:9;;-1:-1:-1;;;;;21151:9:0;:25;21184:9;21217:4;21237:11;21151:9;;21349:7;7775;7802:6;-1:-1:-1;;;;;7802:6:0;;7737:79;21349:7;21371:15;21151:246;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21070:335;;:::o;21413:486::-;21495:16;;;;21494:17;21486:65;;;;-1:-1:-1;;;21486:65:0;;21420:2:1;21486:65:0;;;21402:21:1;21459:2;21439:18;;;21432:30;21498:34;21478:18;;;21471:62;-1:-1:-1;;;21549:18:1;;;21542:33;21592:19;;21486:65:0;21218:399:1;21486:65:0;21567:20;21578:4;21584:2;21567:10;:20::i;:::-;21566:21;:37;;;;-1:-1:-1;21597:6:0;;-1:-1:-1;;;;;21591:12:0;;;21597:6;;21591:12;21566:37;21562:330;;;21639:12;21624;:27;-1:-1:-1;;;;;21668:23:0;;;;;;:17;:23;;;;;;;;;:30;;-1:-1:-1;;21668:30:0;;;21694:4;21668:30;;;;;;21713:16;:23;;;;;;;;;21766:15;21751:12;:30;21798:21;:28;;-1:-1:-1;;;;21798:28:0;-1:-1:-1;;;21798:28:0;;;21846:34;;1605:41:1;;;21846:34:0;;1578:18:1;21846:34:0;;;;;;;21413:486;;:::o;22497:689::-;22637:6;;22576:7;;;;-1:-1:-1;;;;;22637:6:0;;;22631:12;;;;22627:187;;-1:-1:-1;22671:12:0;;22627:187;;;22729:6;;-1:-1:-1;;;;;22729:6:0;;;22721:14;;;;22717:97;;-1:-1:-1;22751:4:0;:11;22717:97;;;-1:-1:-1;22796:16:0;;22717:97;22830:20;22841:4;22847:2;22830:10;:20::i;:::-;22826:142;;;22870:13;;:18;;:42;;;22892:13;;22910:1;22892:20;;22870:42;22866:91;;;22933:8;;;22866:91;22978:17;5345:5;22999:19;23008:10;22999:6;:19;:::i;:::-;:38;;;;:::i;:::-;23065:4;23049:22;;;;:7;:22;;;;;:37;;22978:60;;-1:-1:-1;22978:60:0;;23049:22;;;:37;;22978:60;;23049:37;:::i;:::-;;;;-1:-1:-1;;23102:40:0;;1803:25:1;;;23125:4:0;;-1:-1:-1;;;;;23102:40:0;;;;;1791:2:1;1776:18;23102:40:0;;;;;;;23160:18;23169:9;23160:6;:18;:::i;:::-;23153:25;22497:689;-1:-1:-1;;;;;;22497:689:0:o;222:548:1:-;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;506:3;691:1;686:2;677:6;666:9;662:22;658:31;651:42;761:2;754;750:7;745:2;737:6;733:15;729:29;718:9;714:45;710:54;702:62;;;;222:548;;;;:::o;1009:131::-;-1:-1:-1;;;;;1084:31:1;;1074:42;;1064:70;;1130:1;1127;1120:12;1064:70;1009:131;:::o;1145:315::-;1213:6;1221;1274:2;1262:9;1253:7;1249:23;1245:32;1242:52;;;1290:1;1287;1280:12;1242:52;1329:9;1316:23;1348:31;1373:5;1348:31;:::i;:::-;1398:5;1450:2;1435:18;;;;1422:32;;-1:-1:-1;;;1145:315:1:o;1839:127::-;1900:10;1895:3;1891:20;1888:1;1881:31;1931:4;1928:1;1921:15;1955:4;1952:1;1945:15;1971:275;2042:2;2036:9;2107:2;2088:13;;-1:-1:-1;;2084:27:1;2072:40;;2142:18;2127:34;;2163:22;;;2124:62;2121:88;;;2189:18;;:::i;:::-;2225:2;2218:22;1971:275;;-1:-1:-1;1971:275:1:o;2251:531::-;2294:5;2347:3;2340:4;2332:6;2328:17;2324:27;2314:55;;2365:1;2362;2355:12;2314:55;2401:6;2388:20;2427:18;2423:2;2420:26;2417:52;;;2449:18;;:::i;:::-;2493:55;2536:2;2517:13;;-1:-1:-1;;2513:27:1;2542:4;2509:38;2493:55;:::i;:::-;2573:2;2564:7;2557:19;2619:3;2612:4;2607:2;2599:6;2595:15;2591:26;2588:35;2585:55;;;2636:1;2633;2626:12;2585:55;2701:2;2694:4;2686:6;2682:17;2675:4;2666:7;2662:18;2649:55;2749:1;2724:16;;;2742:4;2720:27;2713:38;;;;2728:7;2251:531;-1:-1:-1;;;2251:531:1:o;2787:611::-;2884:6;2892;2900;2953:2;2941:9;2932:7;2928:23;2924:32;2921:52;;;2969:1;2966;2959:12;2921:52;3009:9;2996:23;3038:18;3079:2;3071:6;3068:14;3065:34;;;3095:1;3092;3085:12;3065:34;3118:50;3160:7;3151:6;3140:9;3136:22;3118:50;:::i;:::-;3108:60;;3221:2;3210:9;3206:18;3193:32;3177:48;;3250:2;3240:8;3237:16;3234:36;;;3266:1;3263;3256:12;3234:36;;3289:52;3333:7;3322:8;3311:9;3307:24;3289:52;:::i;:::-;3279:62;;;3388:2;3377:9;3373:18;3360:32;3350:42;;2787:611;;;;;:::o;3403:456::-;3480:6;3488;3496;3549:2;3537:9;3528:7;3524:23;3520:32;3517:52;;;3565:1;3562;3555:12;3517:52;3604:9;3591:23;3623:31;3648:5;3623:31;:::i;:::-;3673:5;-1:-1:-1;3730:2:1;3715:18;;3702:32;3743:33;3702:32;3743:33;:::i;:::-;3403:456;;3795:7;;-1:-1:-1;;;3849:2:1;3834:18;;;;3821:32;;3403:456::o;3864:248::-;3932:6;3940;3993:2;3981:9;3972:7;3968:23;3964:32;3961:52;;;4009:1;4006;3999:12;3961:52;-1:-1:-1;;4032:23:1;;;4102:2;4087:18;;;4074:32;;-1:-1:-1;3864:248:1:o;4630:247::-;4689:6;4742:2;4730:9;4721:7;4717:23;4713:32;4710:52;;;4758:1;4755;4748:12;4710:52;4797:9;4784:23;4816:31;4841:5;4816:31;:::i;4882:160::-;4947:20;;5003:13;;4996:21;4986:32;;4976:60;;5032:1;5029;5022:12;4976:60;4882:160;;;:::o;5047:315::-;5112:6;5120;5173:2;5161:9;5152:7;5148:23;5144:32;5141:52;;;5189:1;5186;5179:12;5141:52;5228:9;5215:23;5247:31;5272:5;5247:31;:::i;:::-;5297:5;-1:-1:-1;5321:35:1;5352:2;5337:18;;5321:35;:::i;:::-;5311:45;;5047:315;;;;;:::o;5367:1091::-;5457:6;5465;5518:2;5506:9;5497:7;5493:23;5489:32;5486:52;;;5534:1;5531;5524:12;5486:52;5574:9;5561:23;5603:18;5644:2;5636:6;5633:14;5630:34;;;5660:1;5657;5650:12;5630:34;5698:6;5687:9;5683:22;5673:32;;5743:7;5736:4;5732:2;5728:13;5724:27;5714:55;;5765:1;5762;5755:12;5714:55;5801:2;5788:16;5823:4;5846:2;5842;5839:10;5836:36;;;5852:18;;:::i;:::-;5898:2;5895:1;5891:10;5881:20;;5921:28;5945:2;5941;5937:11;5921:28;:::i;:::-;5983:15;;;6053:11;;;6049:20;;;6014:12;;;;6081:19;;;6078:39;;;6113:1;6110;6103:12;6078:39;6137:11;;;;6157:217;6173:6;6168:3;6165:15;6157:217;;;6253:3;6240:17;6227:30;;6270:31;6295:5;6270:31;:::i;:::-;6314:18;;;6190:12;;;;6352;;;;6157:217;;;6393:5;-1:-1:-1;6417:35:1;;-1:-1:-1;6433:18:1;;;6417:35;:::i;:::-;6407:45;;;;;;5367:1091;;;;;:::o;6716:180::-;6772:6;6825:2;6813:9;6804:7;6800:23;6796:32;6793:52;;;6841:1;6838;6831:12;6793:52;6864:26;6880:9;6864:26;:::i;6901:388::-;6969:6;6977;7030:2;7018:9;7009:7;7005:23;7001:32;6998:52;;;7046:1;7043;7036:12;6998:52;7085:9;7072:23;7104:31;7129:5;7104:31;:::i;:::-;7154:5;-1:-1:-1;7211:2:1;7196:18;;7183:32;7224:33;7183:32;7224:33;:::i;:::-;7276:7;7266:17;;;6901:388;;;;;:::o;7294:180::-;7353:6;7406:2;7394:9;7385:7;7381:23;7377:32;7374:52;;;7422:1;7419;7412:12;7374:52;-1:-1:-1;7445:23:1;;7294:180;-1:-1:-1;7294:180:1:o;7479:316::-;7556:6;7564;7572;7625:2;7613:9;7604:7;7600:23;7596:32;7593:52;;;7641:1;7638;7631:12;7593:52;-1:-1:-1;;7664:23:1;;;7734:2;7719:18;;7706:32;;-1:-1:-1;7785:2:1;7770:18;;;7757:32;;7479:316;-1:-1:-1;7479:316:1:o;8060:385::-;8146:6;8154;8162;8170;8223:3;8211:9;8202:7;8198:23;8194:33;8191:53;;;8240:1;8237;8230:12;8191:53;-1:-1:-1;;8263:23:1;;;8333:2;8318:18;;8305:32;;-1:-1:-1;8384:2:1;8369:18;;8356:32;;8435:2;8420:18;8407:32;;-1:-1:-1;8060:385:1;-1:-1:-1;8060:385:1:o;8450:380::-;8529:1;8525:12;;;;8572;;;8593:61;;8647:4;8639:6;8635:17;8625:27;;8593:61;8700:2;8692:6;8689:14;8669:18;8666:38;8663:161;;8746:10;8741:3;8737:20;8734:1;8727:31;8781:4;8778:1;8771:15;8809:4;8806:1;8799:15;8663:161;;8450:380;;;:::o;8835:340::-;9037:2;9019:21;;;9076:2;9056:18;;;9049:30;-1:-1:-1;;;9110:2:1;9095:18;;9088:46;9166:2;9151:18;;8835:340::o;9664:545::-;9766:2;9761:3;9758:11;9755:448;;;9802:1;9827:5;9823:2;9816:17;9872:4;9868:2;9858:19;9942:2;9930:10;9926:19;9923:1;9919:27;9913:4;9909:38;9978:4;9966:10;9963:20;9960:47;;;-1:-1:-1;10001:4:1;9960:47;10056:2;10051:3;10047:12;10044:1;10040:20;10034:4;10030:31;10020:41;;10111:82;10129:2;10122:5;10119:13;10111:82;;;10174:17;;;10155:1;10144:13;10111:82;;10385:1352;10511:3;10505:10;10538:18;10530:6;10527:30;10524:56;;;10560:18;;:::i;:::-;10589:97;10679:6;10639:38;10671:4;10665:11;10639:38;:::i;:::-;10633:4;10589:97;:::i;:::-;10741:4;;10805:2;10794:14;;10822:1;10817:663;;;;11524:1;11541:6;11538:89;;;-1:-1:-1;11593:19:1;;;11587:26;11538:89;-1:-1:-1;;10342:1:1;10338:11;;;10334:24;10330:29;10320:40;10366:1;10362:11;;;10317:57;11640:81;;10787:944;;10817:663;9611:1;9604:14;;;9648:4;9635:18;;-1:-1:-1;;10853:20:1;;;10971:236;10985:7;10982:1;10979:14;10971:236;;;11074:19;;;11068:26;11053:42;;11166:27;;;;11134:1;11122:14;;;;11001:19;;10971:236;;;10975:3;11235:6;11226:7;11223:19;11220:201;;;11296:19;;;11290:26;-1:-1:-1;;11379:1:1;11375:14;;;11391:3;11371:24;11367:37;11363:42;11348:58;11333:74;;11220:201;-1:-1:-1;;;;;11467:1:1;11451:14;;;11447:22;11434:36;;-1:-1:-1;10385:1352:1:o;11742:127::-;11803:10;11798:3;11794:20;11791:1;11784:31;11834:4;11831:1;11824:15;11858:4;11855:1;11848:15;11874:422;11963:1;12006:5;11963:1;12020:270;12041:7;12031:8;12028:21;12020:270;;;12100:4;12096:1;12092:6;12088:17;12082:4;12079:27;12076:53;;;12109:18;;:::i;:::-;12159:7;12149:8;12145:22;12142:55;;;12179:16;;;;12142:55;12258:22;;;;12218:15;;;;12020:270;;;12024:3;11874:422;;;;;:::o;12301:806::-;12350:5;12380:8;12370:80;;-1:-1:-1;12421:1:1;12435:5;;12370:80;12469:4;12459:76;;-1:-1:-1;12506:1:1;12520:5;;12459:76;12551:4;12569:1;12564:59;;;;12637:1;12632:130;;;;12544:218;;12564:59;12594:1;12585:10;;12608:5;;;12632:130;12669:3;12659:8;12656:17;12653:43;;;12676:18;;:::i;:::-;-1:-1:-1;;12732:1:1;12718:16;;12747:5;;12544:218;;12846:2;12836:8;12833:16;12827:3;12821:4;12818:13;12814:36;12808:2;12798:8;12795:16;12790:2;12784:4;12781:12;12777:35;12774:77;12771:159;;;-1:-1:-1;12883:19:1;;;12915:5;;12771:159;12962:34;12987:8;12981:4;12962:34;:::i;:::-;13032:6;13028:1;13024:6;13020:19;13011:7;13008:32;13005:58;;;13043:18;;:::i;:::-;13081:20;;12301:806;-1:-1:-1;;;12301:806:1:o;13112:140::-;13170:5;13199:47;13240:4;13230:8;13226:19;13220:4;13199:47;:::i;13257:168::-;13330:9;;;13361;;13378:15;;;13372:22;;13358:37;13348:71;;13399:18;;:::i;13430:251::-;13500:6;13553:2;13541:9;13532:7;13528:23;13524:32;13521:52;;;13569:1;13566;13559:12;13521:52;13601:9;13595:16;13620:31;13645:5;13620:31;:::i;13995:217::-;14035:1;14061;14051:132;;14105:10;14100:3;14096:20;14093:1;14086:31;14140:4;14137:1;14130:15;14168:4;14165:1;14158:15;14051:132;-1:-1:-1;14197:9:1;;13995:217::o;14217:607::-;-1:-1:-1;;;;;14576:15:1;;;14558:34;;14623:2;14608:18;;14601:34;;;;14666:2;14651:18;;14644:34;;;;14709:2;14694:18;;14687:34;;;;14758:15;;;14752:3;14737:19;;14730:44;14538:3;14790:19;;14783:35;;;;14507:3;14492:19;;14217:607::o;14829:306::-;14917:6;14925;14933;14986:2;14974:9;14965:7;14961:23;14957:32;14954:52;;;15002:1;14999;14992:12;14954:52;15031:9;15025:16;15015:26;;15081:2;15070:9;15066:18;15060:25;15050:35;;15125:2;15114:9;15110:18;15104:25;15094:35;;14829:306;;;;;:::o;15140:128::-;15207:9;;;15228:11;;;15225:37;;;15242:18;;:::i;15273:401::-;15475:2;15457:21;;;15514:2;15494:18;;;15487:30;15553:34;15548:2;15533:18;;15526:62;-1:-1:-1;;;15619:2:1;15604:18;;15597:35;15664:3;15649:19;;15273:401::o;15679:125::-;15744:9;;;15765:10;;;15762:36;;;15778:18;;:::i;15809:425::-;16011:2;15993:21;;;16050:2;16030:18;;;16023:30;16089:34;16084:2;16069:18;;16062:62;16160:31;16155:2;16140:18;;16133:59;16224:3;16209:19;;15809:425::o;16926:127::-;16987:10;16982:3;16978:20;16975:1;16968:31;17018:4;17015:1;17008:15;17042:4;17039:1;17032:15;17058:135;17097:3;17118:17;;;17115:43;;17138:18;;:::i;:::-;-1:-1:-1;17185:1:1;17174:13;;17058:135::o;20233:980::-;20495:4;20543:3;20532:9;20528:19;20574:6;20563:9;20556:25;20600:2;20638:6;20633:2;20622:9;20618:18;20611:34;20681:3;20676:2;20665:9;20661:18;20654:31;20705:6;20740;20734:13;20771:6;20763;20756:22;20809:3;20798:9;20794:19;20787:26;;20848:2;20840:6;20836:15;20822:29;;20869:1;20879:195;20893:6;20890:1;20887:13;20879:195;;;20958:13;;-1:-1:-1;;;;;20954:39:1;20942:52;;21049:15;;;;21014:12;;;;20990:1;20908:9;20879:195;;;-1:-1:-1;;;;;;;21130:32:1;;;;21125:2;21110:18;;21103:60;-1:-1:-1;;;21194:3:1;21179:19;21172:35;21091:3;20233:980;-1:-1:-1;;;20233:980:1:o
Swarm Source
ipfs://5390c0e14fae3b617833ab14f0d8e104da1e6e198917db63b096ee5ecab64202
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.