Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000,000,000 PINGU
Holders
59
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PINGU
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-16 */ /** @PinguPortal */ // SPDX-License-Identifier: MIT pragma solidity 0.8.9; 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 IFactoryV2 { 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 IV2Pair { function factory() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function sync() external; } interface IRouter01 { 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); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function swapExactETHForTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IRouter02 is IRouter01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( 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 swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); } contract PINGU is IERC20 { mapping (address => uint256) private _rOwned; 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) private _isExcludedFromLimits; mapping (address => bool) private bots; uint256 constant private startingSupply = 1_000_000_000_000_000; string constant private _name = "PINGU"; string constant private _symbol = "PINGU"; uint8 constant private _decimals = 9; uint256 private _tTotal = startingSupply * 10**_decimals; struct Fees { uint16 buyFee; uint16 sellFee; uint16 transferFee; } struct Ratios { uint16 liquidity; uint16 marketing; uint16 development; uint16 burn; uint16 buyback; uint16 totalSwap; } Fees public _taxRates = Fees({ buyFee: 1500, sellFee: 1500, transferFee: 0 }); Ratios public _ratios = Ratios({ liquidity: 200, marketing: 0, development: 800, burn: 0, buyback: 0, totalSwap: 1000 }); uint256 constant public maxBuyTaxes = 2000; uint256 constant public maxSellTaxes = 2000; uint256 constant public maxTransferTaxes = 2000; uint256 constant public maxRoundtripTax = 4000; uint256 constant masterTaxDivisor = 10000; bool public taxesAreLocked; IRouter02 public dexRouter; address public lpPair; address constant public DEAD = 0x000000000000000000000000000000000000dEaD; struct TaxWallets { address payable marketing; address payable development; address payable liquidity; address payable buyback; } TaxWallets public _taxWallets = TaxWallets({ marketing: payable(0xAe1141A5D8Ef6282B9c2930EEC10fe469E97F291), development: payable(0xAe1141A5D8Ef6282B9c2930EEC10fe469E97F291), liquidity: payable(DEAD), buyback: payable(DEAD) }); bool inSwap; bool public contractSwapEnabled = false; uint256 public swapThreshold; uint256 public swapAmount; bool public piContractSwapsEnabled; uint256 public piSwapPercent = 10; uint256 private _maxTxAmount = (_tTotal * 2) / 100; uint256 private _maxWalletSize = (_tTotal * 2) / 100; bool public tradingEnabled = false; bool public _hasLiqBeenAdded = false; address public buyback = address(this); uint256 public _totalBuyback; uint256 public _totalBurned; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event ContractSwapEnabledUpdated(bool enabled); event AutoLiquify(uint256 amountCurrency, uint256 amountTokens); modifier inSwapFlag { inSwap = true; _; inSwap = false; } modifier onlyOwner() { require(_owner == msg.sender, "Caller =/= owner."); _; } constructor () payable { // Set the owner. _owner = _taxWallets.development; dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _tOwned[_owner] = _tTotal; emit Transfer(address(0), _owner, _tTotal); lpPair = IFactoryV2(dexRouter.factory()).createPair(dexRouter.WETH(), address(this)); lpPairs[lpPair] = true; _approve(_owner, address(dexRouter), type(uint256).max); _approve(address(this), address(dexRouter), type(uint256).max); _isExcludedFromFees[_owner] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[DEAD] = true; _liquidityHolders[_owner] = true; } receive() external payable {} //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== // Ownable removed as a lib and added here to allow for custom transfers and renouncements. // This allows for removal of ownership privileges from the owner once renounced or transferred. address private _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 (balanceOf(_owner) > 0) { finalizeTransfer(_owner, newOwner, balanceOf(_owner), false, false, true); } address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function renounceOwnership() external onlyOwner { setExcludedFromFees(_owner, false); address oldOwner = _owner; _owner = address(0); emit OwnershipTransferred(oldOwner, address(0)); } //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== function totalSupply() external view override returns (uint256) { return _tTotal; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure 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(msg.sender, recipient, amount); return true; } function approve(address spender, uint256 amount) external override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve(address sender, address spender, uint256 amount) internal { require(sender != address(0), "ERC20: Zero Address"); require(spender != address(0), "ERC20: Zero Address"); _allowances[sender][spender] = amount; emit Approval(sender, spender, amount); } 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 isExcludedFromLimits(address account) external view returns (bool) { return _isExcludedFromLimits[account]; } function isExcludedFromFees(address account) external view returns(bool) { return _isExcludedFromFees[account]; } function setExcludedFromLimits(address account, bool enabled) external onlyOwner { _isExcludedFromLimits[account] = enabled; } function setExcludedFromFees(address account, bool enabled) public onlyOwner { _isExcludedFromFees[account] = enabled; } function getCirculatingSupply() public view returns (uint256) { return (_tTotal - (balanceOf(DEAD) + balanceOf(address(0)))); } function setTaxes(uint16 buyFee, uint16 sellFee, uint16 transferFee) external onlyOwner { require(buyFee <= maxBuyTaxes && sellFee <= maxSellTaxes && transferFee <= maxTransferTaxes, "Cannot exceed maximums."); require(buyFee + sellFee <= maxRoundtripTax, "Cannot exceed roundtrip maximum."); _taxRates.buyFee = buyFee; _taxRates.sellFee = sellFee; _taxRates.transferFee = transferFee; } function setRatios(uint16 liquidity, uint16 marketing, uint16 development, uint16 burn, uint16 _buyBack) external onlyOwner { _ratios.liquidity = liquidity; _ratios.marketing = marketing; _ratios.development = development; _ratios.burn = burn; _ratios.buyback = _buyBack; _ratios.totalSwap = liquidity + marketing + development + _buyBack; uint256 total = _taxRates.buyFee + _taxRates.sellFee; require(_ratios.totalSwap + _ratios.burn <= total, "Cannot exceed sum of buy and sell fees."); } function setWallets(address payable marketing, address payable development, address payable liquidity) external onlyOwner { _taxWallets.marketing = payable(marketing); _taxWallets.development = payable(development); _taxWallets.liquidity = payable(liquidity); } function setPurchaseDestinations(address payable _buyBack) external onlyOwner { _taxWallets.buyback = payable(_buyBack); } function setMaxTxPercent(uint256 percent, uint256 divisor) external onlyOwner { require((_tTotal * percent) / divisor >= (_tTotal * 5 / 1000), "Max Transaction amt must be above 0.5% of total supply."); _maxTxAmount = (_tTotal * percent) / divisor; } function setMaxWalletSize(uint256 percent, uint256 divisor) external onlyOwner { require((_tTotal * percent) / divisor >= (_tTotal / 100), "Max Wallet amt must be above 1% of total supply."); _maxWalletSize = (_tTotal * percent) / divisor; } function getMaxTX() external view returns (uint256) { return _maxTxAmount / (10**_decimals); } function getMaxWallet() external view returns (uint256) { return _maxWalletSize / (10**_decimals); } function getTokenAmountAtPriceImpact(uint256 priceImpactInHundreds) external view returns (uint256) { return((balanceOf(lpPair) * priceImpactInHundreds) / masterTaxDivisor); } function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner { swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor; swapAmount = (_tTotal * amountPercent) / amountDivisor; require(swapThreshold <= swapAmount, "Threshold cannot be above amount."); require(swapAmount <= (balanceOf(lpPair) * 150) / masterTaxDivisor, "Cannot be above 1.5% of current PI."); require(swapAmount >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply."); require(swapThreshold >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply."); } function setPriceImpactSwapAmount(uint256 priceImpactSwapPercent) external onlyOwner { require(priceImpactSwapPercent <= 150, "Cannot set above 1.5%."); piSwapPercent = priceImpactSwapPercent; } function setContractSwapEnabled(bool swapEnabled, bool priceImpactSwapEnabled) external onlyOwner { contractSwapEnabled = swapEnabled; piContractSwapsEnabled = priceImpactSwapEnabled; emit ContractSwapEnabledUpdated(swapEnabled); } function getTotalBoughtBack() external view returns (uint256 buybackBoughtTotal) { buybackBoughtTotal = _totalBuyback; } function getTotalTrueBurned() external view returns (uint256 burnedTotal) { burnedTotal = _totalBurned; } function _hasLimits(address from, address to) internal view returns (bool) { return from != _owner && to != _owner && tx.origin != _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: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(!bots[from] && !bots[to]); bool buy = false; bool sell = false; bool other = false; if (lpPairs[from]) { buy = true; } else if (lpPairs[to]) { sell = true; } else { other = true; } if (_hasLimits(from, to)) { if(!tradingEnabled) { revert("Trading not yet enabled!"); } if (buy || sell){ if (!_isExcludedFromLimits[from] && !_isExcludedFromLimits[to]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } } if (to != address(dexRouter) && !sell) { if (!_isExcludedFromLimits[to]) { require(balanceOf(to) + amount <= _maxWalletSize, "Transfer amount exceeds the maxWalletSize."); } } } if (sell) { if (!inSwap) { if (contractSwapEnabled) { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= swapThreshold) { uint256 swapAmt = swapAmount; if (piContractSwapsEnabled) { swapAmt = (balanceOf(lpPair) * piSwapPercent) / masterTaxDivisor; } if (contractTokenBalance >= swapAmt) { contractTokenBalance = swapAmt; } contractSwap(contractTokenBalance); } } } } return finalizeTransfer(from, to, amount, buy, sell, other); } function contractSwap(uint256 contractTokenBalance) internal inSwapFlag { Ratios memory ratios = _ratios; if (ratios.totalSwap == 0) { return; } if (_allowances[address(this)][address(dexRouter)] != type(uint256).max) { _allowances[address(this)][address(dexRouter)] = type(uint256).max; } uint256 toLiquify = ((contractTokenBalance * ratios.liquidity) / ratios.totalSwap) / 2; uint256 swapAmt = contractTokenBalance - toLiquify; address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); try dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( swapAmt, 0, path, address(this), block.timestamp ) {} catch { return; } uint256 amtBalance = address(this).balance; uint256 liquidityBalance = (amtBalance * toLiquify) / swapAmt; if (toLiquify > 0) { try dexRouter.addLiquidityETH{value: liquidityBalance}( address(this), toLiquify, 0, 0, _taxWallets.liquidity, block.timestamp ) { emit AutoLiquify(liquidityBalance, toLiquify); } catch { return; } } amtBalance -= liquidityBalance; ratios.totalSwap -= ratios.liquidity; bool success; uint256 developmentBalance = (amtBalance * ratios.development) / ratios.totalSwap; uint256 buybackBalance = (buyback != address(0)) ? (amtBalance * ratios.buyback) / ratios.totalSwap : 0; uint256 marketingBalance = amtBalance - (developmentBalance + buybackBalance); if (marketingBalance > 0) { (success,) = _taxWallets.marketing.call{value: marketingBalance, gas: 35000}(""); } if (developmentBalance > 0) { (success,) = _taxWallets.development.call{value: developmentBalance, gas: 35000}(""); } if (buybackBalance > 0) { path[0] = dexRouter.WETH(); path[1] = buyback; buyTokens(path, buybackBalance, _taxWallets.buyback); } } function buyTokens(address[] memory path, uint256 amount, address payable destination) internal { try dexRouter.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount} ( 0, path, destination, block.timestamp ) { if (path[1] == buyback) { _totalBuyback += amount; } } catch { return; } } function _checkLiquidityAdd(address from, address to) internal { require(!_hasLiqBeenAdded, "Liquidity already added and marked."); if (!_hasLimits(from, to) && to == lpPair) { _liquidityHolders[from] = true; _isExcludedFromFees[from] = true; _hasLiqBeenAdded = true; contractSwapEnabled = true; emit ContractSwapEnabledUpdated(true); } } function enableTrading() public onlyOwner { require(!tradingEnabled, "Trading already enabled!"); require(_hasLiqBeenAdded, "Liquidity must be added."); tradingEnabled = true; swapThreshold = (balanceOf(lpPair) * 10) / 10000; swapAmount = (balanceOf(lpPair) * 30) / 10000; _approve(address(this), address(dexRouter), type(uint256).max); } function finalizeTransfer(address from, address to, uint256 amount, bool buy, bool sell, bool other) internal returns (bool) { if (!_hasLiqBeenAdded) { _checkLiquidityAdd(from, to); if (!_hasLiqBeenAdded && _hasLimits(from, to) && !other) { revert("Pre-liquidity transfer protection."); } } bool takeFee = true; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]){ takeFee = false; } _tOwned[from] -= amount; uint256 amountReceived = (takeFee) ? takeTaxes(from, buy, sell, amount) : amount; _tOwned[to] += amountReceived; emit Transfer(from, to, amountReceived); return true; } function takeTaxes(address from, bool buy, bool sell, uint256 amount) internal returns (uint256) { Ratios memory ratios = _ratios; uint256 currentFee; if (buy) { currentFee = _taxRates.buyFee; } else if (sell) { currentFee = _taxRates.sellFee; } else { currentFee = _taxRates.transferFee; } uint256 feeAmount = amount * currentFee / masterTaxDivisor; uint256 burnAmount = (feeAmount * ratios.burn) / (ratios.burn + ratios.totalSwap); uint256 swapAmt = feeAmount - burnAmount; if (swapAmt > 0) { _tOwned[address(this)] += swapAmt; emit Transfer(from, address(this), swapAmt); } if (burnAmount > 0) { _tTotal -= burnAmount; _totalBurned += burnAmount; emit Transfer(from, address(0), burnAmount); } return amount - feeAmount; } function blacklist (address _address) external onlyOwner { bots[_address] = true; } function removeFromBlacklist (address _address) external onlyOwner { bots[_address] = false; } function getIsBlacklistedStatus (address _address) external view returns (bool) { return bots[_address]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"payable","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":"amountCurrency","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ContractSwapEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ratios","outputs":[{"internalType":"uint16","name":"liquidity","type":"uint16"},{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"development","type":"uint16"},{"internalType":"uint16","name":"burn","type":"uint16"},{"internalType":"uint16","name":"buyback","type":"uint16"},{"internalType":"uint16","name":"totalSwap","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRates","outputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxWallets","outputs":[{"internalType":"address payable","name":"marketing","type":"address"},{"internalType":"address payable","name":"development","type":"address"},{"internalType":"address payable","name":"liquidity","type":"address"},{"internalType":"address payable","name":"buyback","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalBuyback","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyback","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getIsBlacklistedStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxTX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxWallet","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":"uint256","name":"priceImpactInHundreds","type":"uint256"}],"name":"getTokenAmountAtPriceImpact","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalBoughtBack","outputs":[{"internalType":"uint256","name":"buybackBoughtTotal","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalTrueBurned","outputs":[{"internalType":"uint256","name":"burnedTotal","type":"uint256"}],"stateMutability":"view","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":"account","type":"address"}],"name":"isExcludedFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxRoundtripTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"piContractSwapsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"piSwapPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeFromBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"swapEnabled","type":"bool"},{"internalType":"bool","name":"priceImpactSwapEnabled","type":"bool"}],"name":"setContractSwapEnabled","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":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromLimits","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":"uint256","name":"priceImpactSwapPercent","type":"uint256"}],"name":"setPriceImpactSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_buyBack","type":"address"}],"name":"setPurchaseDestinations","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"liquidity","type":"uint16"},{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"development","type":"uint16"},{"internalType":"uint16","name":"burn","type":"uint16"},{"internalType":"uint16","name":"_buyBack","type":"uint16"}],"name":"setRatios","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":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketing","type":"address"},{"internalType":"address payable","name":"development","type":"address"},{"internalType":"address payable","name":"liquidity","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxesAreLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000600355620000176009600a620006d9565b6200002a9066038d7ea4c68000620006f1565b600981905560408051606080820183526105dc8083526020808401919091526000928401839052600a805465ffffffffffff19166305dc05dc178155845160c08101865260c88152808301859052610320818701528084018590526080808201959095526103e860a090910152600b80546b03e8000000000320000000c86001600160601b03199091161790558451938401855273ae1141a5d8ef6282b9c2930eec10fe469e97f29180855291840182905261dead94840185905292909101839052600e80546001600160a01b03199081168317909155600f8054821690921790915560108054821684179055601180549091169092179091556012805461ff001916905560165560649062000142906002620006f1565b6200014e919062000713565b60175560646009546002620001649190620006f1565b62000170919062000713565b601855601980546001600160b01b031916306201000002179055600f54601c80546001600160a01b039283166001600160a01b031990911681178255600c8054610100600160a81b031916747a250d5630b4cf539739df2c5dacb4c659f2488d00179055600954600091825260016020908152604080842083905593549351918252929093169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600c60019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200027357600080fd5b505afa15801562000288573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ae919062000736565b6001600160a01b031663c9c65396600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200030b57600080fd5b505afa15801562000320573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000346919062000736565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b1580156200038e57600080fd5b505af1158015620003a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c9919062000736565b600d80546001600160a01b0319166001600160a01b039283169081179091556000908152600260205260409020805460ff19166001179055601c54600c5462000420929182169161010090910416600019620004c3565b600c546200044190309061010090046001600160a01b0316600019620004c3565b601c80546001600160a01b0390811660009081526006602090815260408083208054600160ff19918216811790925530855282852080548216831790557f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2280548216831790559554909416835260059091529020805490921617905562000761565b6001600160a01b038316620005155760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b038216620005635760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016200050c565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200061b578160001904821115620005ff57620005ff620005c4565b808516156200060d57918102915b93841c9390800290620005df565b509250929050565b6000826200063457506001620006d3565b816200064357506000620006d3565b81600181146200065c5760028114620006675762000687565b6001915050620006d3565b60ff8411156200067b576200067b620005c4565b50506001821b620006d3565b5060208310610133831016604e8410600b8410161715620006ac575081810a620006d3565b620006b88383620005da565b8060001904821115620006cf57620006cf620005c4565b0290505b92915050565b6000620006ea60ff84168362000623565b9392505050565b60008160001904831182151516156200070e576200070e620005c4565b500290565b6000826200073157634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200074957600080fd5b81516001600160a01b0381168114620006ea57600080fd5b6131b380620007716000396000f3fe60806040526004361061036f5760003560e01c80634fbee193116101c6578063a9059cbb116100f7578063f08f43a211610095578063f9f92be41161006f578063f9f92be414610a96578063fb78680d14610ab6578063fd01bd4c14610ad6578063fdb78c0e14610aec57600080fd5b8063f08f43a2146109ea578063f8ec691114610a0a578063f94aa1b414610a3057600080fd5b8063b7df8b36116100d1578063b7df8b36146108e0578063bfc2fc35146108fa578063cf8477061461091a578063dd62ed3e146109a457600080fd5b8063a9059cbb146108c0578063b1b08f711461059a578063b3d514fb1461059a57600080fd5b806370a08231116101645780637b3efe581161013e5780637b3efe5814610878578063893d20e81461088d5780638a8c523c146108ab57806395d89b411461042757600080fd5b806370a0823114610823578063715018a61461084357806375cb1bd11461085857600080fd5b8063590ffdce116101a0578063590ffdce146107955780635cce86cd146107b55780636e182809146107ee5780636ebd00781461080e57600080fd5b80634fbee1931461071d57806350a8e01614610756578063537df3b61461077557600080fd5b80632b28fc7a116102a057806346ea7ac81161023e5780634b3c109a116102185780634b3c109a146106a75780634bbb93eb146106bd5780634e718e48146106dd5780634fb2e45d146106fd57600080fd5b806346ea7ac81461066257806348726021146106785780634ada218b1461068d57600080fd5b806332cde6641161027a57806332cde664146105e257806336fddb04146106025780633f3cf56c14610622578063452ed4f11461064257600080fd5b80632b28fc7a1461059a5780632e8fa821146105b0578063313ce567146105c657600080fd5b8063095ea7b31161030d57806323b872dd116102e757806323b872dd1461052d578063260039571461054d578063285777511461056f5780632b112e491461058557600080fd5b8063095ea7b3146104e35780630fa604e41461050357806318160ddd1461051857600080fd5b806306fdde031161034957806306fdde03146104275780630758d9241461045b57806307dd79e014610480578063084e4f8a146104aa57600080fd5b806303fd2a451461037b5780630445b667146103ae578063069d955f146103d257600080fd5b3661037657005b600080fd5b34801561038757600080fd5b5061039161dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103ba57600080fd5b506103c460135481565b6040519081526020016103a5565b3480156103de57600080fd5b50600a546104029061ffff80821691620100008104821691600160201b9091041683565b6040805161ffff948516815292841660208401529216918101919091526060016103a5565b34801561043357600080fd5b50604080518082018252600581526450494e475560d81b602082015290516103a59190612ac7565b34801561046757600080fd5b50600c546103919061010090046001600160a01b031681565b34801561048c57600080fd5b50600c5461049a9060ff1681565b60405190151581526020016103a5565b3480156104b657600080fd5b5061049a6104c5366004612b34565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156104ef57600080fd5b5061049a6104fe366004612b51565b610b0b565b34801561050f57600080fd5b506103c4610b22565b34801561052457600080fd5b506009546103c4565b34801561053957600080fd5b5061049a610548366004612b7d565b610b42565b34801561055957600080fd5b5061056d610568366004612bbe565b610bba565b005b34801561057b57600080fd5b506103c460165481565b34801561059157600080fd5b506103c4610c9c565b3480156105a657600080fd5b506103c46107d081565b3480156105bc57600080fd5b506103c460145481565b3480156105d257600080fd5b50604051600981526020016103a5565b3480156105ee57600080fd5b5061056d6105fd366004612bf7565b610cca565b34801561060e57600080fd5b5061056d61061d366004612c4a565b610e0b565b34801561062e57600080fd5b5061056d61063d366004612bbe565b610e60565b34801561064e57600080fd5b50600d54610391906001600160a01b031681565b34801561066e57600080fd5b506103c4610fa081565b34801561068457600080fd5b50601a546103c4565b34801561069957600080fd5b5060195461049a9060ff1681565b3480156106b357600080fd5b506103c4601a5481565b3480156106c957600080fd5b506103c46106d8366004612c7f565b610f53565b3480156106e957600080fd5b5061056d6106f8366004612c7f565b610f85565b34801561070957600080fd5b5061056d610718366004612b34565b610ffe565b34801561072957600080fd5b5061049a610738366004612b34565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561076257600080fd5b5060195461049a90610100900460ff1681565b34801561078157600080fd5b5061056d610790366004612b34565b611131565b3480156107a157600080fd5b5061056d6107b0366004612c4a565b61117c565b3480156107c157600080fd5b5061049a6107d0366004612b34565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156107fa57600080fd5b5061056d610809366004612b34565b6111d1565b34801561081a57600080fd5b506103c461121d565b34801561082f57600080fd5b506103c461083e366004612b34565b611238565b34801561084f57600080fd5b5061056d611253565b34801561086457600080fd5b5061056d610873366004612c98565b6112e2565b34801561088457600080fd5b50601b546103c4565b34801561089957600080fd5b50601c546001600160a01b0316610391565b3480156108b757600080fd5b5061056d61134b565b3480156108cc57600080fd5b5061049a6108db366004612b51565b6114af565b3480156108ec57600080fd5b5060155461049a9060ff1681565b34801561090657600080fd5b5061056d610915366004612ce3565b6114c6565b34801561092657600080fd5b50600b546109679061ffff80821691620100008104821691600160201b8204811691600160301b8104821691600160401b8204811691600160501b90041686565b6040805161ffff978816815295871660208701529386169385019390935290841660608401528316608083015290911660a082015260c0016103a5565b3480156109b057600080fd5b506103c46109bf366004612cff565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156109f657600080fd5b5061056d610a05366004612d38565b61154f565b348015610a1657600080fd5b50601954610391906201000090046001600160a01b031681565b348015610a3c57600080fd5b50600e54600f54601054601154610a63936001600160a01b03908116938116928116911684565b604080516001600160a01b03958616815293851660208501529184169183019190915290911660608201526080016103a5565b348015610aa257600080fd5b5061056d610ab1366004612b34565b6116c6565b348015610ac257600080fd5b5061056d610ad1366004612d9d565b611714565b348015610ae257600080fd5b506103c4601b5481565b348015610af857600080fd5b5060125461049a90610100900460ff1681565b6000610b183384846118c9565b5060015b92915050565b6000610b306009600a612ec9565b601854610b3d9190612ed8565b905090565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610ba7576001600160a01b038416600090815260046020908152604080832033845290915281208054849290610ba1908490612efa565b90915550505b610bb28484846119c2565b949350505050565b601c546001600160a01b03163314610bed5760405162461bcd60e51b8152600401610be490612f11565b60405180910390fd5b6064600954610bfc9190612ed8565b8183600954610c0b9190612f3c565b610c159190612ed8565b1015610c7c5760405162461bcd60e51b815260206004820152603060248201527f4d61782057616c6c657420616d74206d7573742062652061626f76652031252060448201526f37b3103a37ba30b61039bab838363c9760811b6064820152608401610be4565b8082600954610c8b9190612f3c565b610c959190612ed8565b6018555050565b6000610ca86000611238565b610cb361dead611238565b610cbd9190612f5b565b600954610b3d9190612efa565b601c546001600160a01b03163314610cf45760405162461bcd60e51b8152600401610be490612f11565b6107d08361ffff1611158015610d1057506107d08261ffff1611155b8015610d2257506107d08161ffff1611155b610d6e5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610be4565b610fa0610d7b8385612f73565b61ffff161115610dcd5760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f742065786365656420726f756e6474726970206d6178696d756d2e6044820152606401610be4565b600a805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff000000001916600160201b9190931602919091179055565b601c546001600160a01b03163314610e355760405162461bcd60e51b8152600401610be490612f11565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b601c546001600160a01b03163314610e8a5760405162461bcd60e51b8152600401610be490612f11565b6103e86009546005610e9c9190612f3c565b610ea69190612ed8565b8183600954610eb59190612f3c565b610ebf9190612ed8565b1015610f335760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3525206f6620746f74616c20737570706c792e0000000000000000006064820152608401610be4565b8082600954610f429190612f3c565b610f4c9190612ed8565b6017555050565b600d54600090612710908390610f71906001600160a01b0316611238565b610f7b9190612f3c565b610b1c9190612ed8565b601c546001600160a01b03163314610faf5760405162461bcd60e51b8152600401610be490612f11565b6096811115610ff95760405162461bcd60e51b815260206004820152601660248201527521b0b73737ba1039b2ba1030b137bb329018971a929760511b6044820152606401610be4565b601655565b601c546001600160a01b031633146110285760405162461bcd60e51b8152600401610be490612f11565b6001600160a01b03811661104e5760405162461bcd60e51b8152600401610be490612f99565b6001600160a01b03811661dead14156110795760405162461bcd60e51b8152600401610be490612f99565b601c54611090906001600160a01b0316600061117c565b61109b81600161117c565b601c546000906110b3906001600160a01b0316611238565b11156110df57601c546110dd906001600160a01b0316826110d382611238565b6000806001611e13565b505b601c80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b601c546001600160a01b0316331461115b5760405162461bcd60e51b8152600401610be490612f11565b6001600160a01b03166000908152600860205260409020805460ff19169055565b601c546001600160a01b031633146111a65760405162461bcd60e51b8152600401610be490612f11565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b601c546001600160a01b031633146111fb5760405162461bcd60e51b8152600401610be490612f11565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b600061122b6009600a612ec9565b601754610b3d9190612ed8565b6001600160a01b031660009081526001602052604090205490565b601c546001600160a01b0316331461127d5760405162461bcd60e51b8152600401610be490612f11565b601c54611294906001600160a01b0316600061117c565b601c80546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b601c546001600160a01b0316331461130c5760405162461bcd60e51b8152600401610be490612f11565b600e80546001600160a01b039485166001600160a01b031991821617909155600f80549385169382169390931790925560108054919093169116179055565b601c546001600160a01b031633146113755760405162461bcd60e51b8152600401610be490612f11565b60195460ff16156113c85760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610be4565b601954610100900460ff1661141f5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610be4565b6019805460ff19166001179055600d5461271090611445906001600160a01b0316611238565b61145090600a612f3c565b61145a9190612ed8565b601355600d5461271090611476906001600160a01b0316611238565b61148190601e612f3c565b61148b9190612ed8565b601455600c546114ad90309061010090046001600160a01b03166000196118c9565b565b60006114bc3384846119c2565b5060019392505050565b601c546001600160a01b031633146114f05760405162461bcd60e51b8152600401610be490612f11565b6012805461ff001916610100841515908102919091179091556015805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b601c546001600160a01b031633146115795760405162461bcd60e51b8152600401610be490612f11565b600b805461ffff87811663ffffffff199092169190911762010000878316021767ffffffff000000001916600160201b8683160267ffff000000000000191617600160301b858316021769ffff00000000000000001916600160401b9184169190910217905580836115eb8688612f73565b6115f59190612f73565b6115ff9190612f73565b600b805461ffff60501b1916600160501b61ffff93841602179055600a546000916116339162010000810482169116612f73565b600b5461ffff9182169250829161165c91600160301b8104821691600160501b90910416612f73565b61ffff1611156116be5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206578636565642073756d206f662062757920616e642073656c60448201526636103332b2b99760c91b6064820152608401610be4565b505050505050565b601c546001600160a01b031633146116f05760405162461bcd60e51b8152600401610be490612f11565b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b601c546001600160a01b0316331461173e5760405162461bcd60e51b8152600401610be490612f11565b828460095461174d9190612f3c565b6117579190612ed8565b601355600954819061176a908490612f3c565b6117749190612ed8565b601481905560135411156117d45760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610be4565b600d54612710906117ed906001600160a01b0316611238565b6117f8906096612f3c565b6118029190612ed8565b601454111561185f5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610be4565b620f42406009546118709190612ed8565b60145410156118915760405162461bcd60e51b8152600401610be490612ff6565b620f42406009546118a29190612ed8565b60135410156118c35760405162461bcd60e51b8152600401610be490612ff6565b50505050565b6001600160a01b0383166119155760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610be4565b6001600160a01b0382166119615760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610be4565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611a285760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610be4565b6001600160a01b038316611a8a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610be4565b60008211611aec5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610be4565b6001600160a01b03841660009081526008602052604090205460ff16158015611b2e57506001600160a01b03831660009081526008602052604090205460ff16155b611b3757600080fd5b6001600160a01b0384166000908152600260205260408120548190819060ff1615611b655760019250611b93565b6001600160a01b03861660009081526002602052604090205460ff1615611b8f5760019150611b93565b5060015b611b9d8787611fd0565b15611d6a5760195460ff16611bf45760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610be4565b8280611bfd5750815b15611cac576001600160a01b03871660009081526007602052604090205460ff16158015611c4457506001600160a01b03861660009081526007602052604090205460ff16155b15611cac57601754851115611cac5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610be4565b600c546001600160a01b038781166101009092041614801590611ccd575081155b15611d6a576001600160a01b03861660009081526007602052604090205460ff16611d6a5760185485611cff88611238565b611d099190612f5b565b1115611d6a5760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610be4565b8115611dfa5760125460ff16611dfa57601254610100900460ff1615611dfa576000611d9530611238565b90506013548110611df85760145460155460ff1615611de257601654600d546127109190611dcb906001600160a01b0316611238565b611dd59190612f3c565b611ddf9190612ed8565b90505b808210611ded578091505b611df6826120a7565b505b505b611e08878787868686611e13565b979650505050505050565b601954600090610100900460ff16611eae57611e2f87876126dd565b601954610100900460ff16158015611e4c5750611e4c8787611fd0565b8015611e56575081155b15611eae5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610be4565b6001600160a01b03871660009081526006602052604090205460019060ff1680611ef057506001600160a01b03871660009081526006602052604090205460ff165b15611ef9575060005b6001600160a01b03881660009081526001602052604081208054889290611f21908490612efa565b909155506000905081611f345786611f40565b611f408987878a6127f5565b6001600160a01b038916600090815260016020526040812080549293508392909190611f6d908490612f5b565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fb991815260200190565b60405180910390a350600198975050505050505050565b601c546000906001600160a01b03848116911614801590611fff5750601c546001600160a01b03838116911614155b80156120165750601c546001600160a01b03163214155b801561203b57506001600160a01b03821660009081526005602052604090205460ff16155b801561206057506001600160a01b03831660009081526005602052604090205460ff16155b801561207757506001600160a01b03821661dead14155b801561208b57506001600160a01b03821615155b80156120a057506001600160a01b0383163014155b9392505050565b6012805460ff191660011790556040805160c081018252600b5461ffff808216835262010000820481166020840152600160201b8204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b900490911660a0820181905261211d57506126d0565b306000908152600460209081526040808320600c5461010090046001600160a01b031684529091529020546000191461218057306000908152600460209081526040808320600c5461010090046001600160a01b03168452909152902060001990555b600060028260a0015161ffff16836000015161ffff16856121a19190612f3c565b6121ab9190612ed8565b6121b59190612ed8565b905060006121c38285612efa565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106121fd576121fd613044565b60200260200101906001600160a01b031690816001600160a01b031681525050600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561226b57600080fd5b505afa15801561227f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a3919061305a565b816001815181106122b6576122b6613044565b6001600160a01b039283166020918202929092010152600c5460405163791ac94760e01b81526101009091049091169063791ac947906123039085906000908690309042906004016130bb565b600060405180830381600087803b15801561231d57600080fd5b505af192505050801561232e575060015b61233b57505050506126d0565b476000836123498684612f3c565b6123539190612ed8565b9050841561244857600c5460105460405163f305d71960e01b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a4820152610100909204169063f305d71990839060c4016060604051808303818588803b1580156123cb57600080fd5b505af1935050505080156123fc575060408051601f3d908101601f191682019092526123f9918101906130f7565b60015b61240b575050505050506126d0565b505060408051838152602081018890527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b6124528183612efa565b915085600001518660a00181815161246a9190613125565b61ffff90811690915260a0880151604089015160009350839291821691612492911686612f3c565b61249c9190612ed8565b6019549091506000906201000090046001600160a01b03166124bf5760006124e6565b8860a0015161ffff16896080015161ffff16866124dc9190612f3c565b6124e69190612ed8565b905060006124f48284612f5b565b6124fe9087612efa565b9050801561256357600e546040516001600160a01b03909116906188b89083906000818181858888f193505050503d8060008114612558576040519150601f19603f3d011682016040523d82523d6000602084013e61255d565b606091505b50909450505b82156125c657600f546040516001600160a01b03909116906188b89085906000818181858888f193505050503d80600081146125bb576040519150601f19603f3d011682016040523d82523d6000602084013e6125c0565b606091505b50909450505b81156126c557600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561261a57600080fd5b505afa15801561262e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612652919061305a565b8760008151811061266557612665613044565b6001600160a01b039283166020918202929092010152601954885162010000909104909116908890600190811061269e5761269e613044565b6001600160a01b0392831660209182029290920101526011546126c59189918591166129f0565b505050505050505050505b506012805460ff19169055565b601954610100900460ff16156127415760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610be4565b61274b8282611fd0565b1580156127655750600d546001600160a01b038281169116145b156127f1576001600160a01b03821660009081526005602090815260408083208054600160ff1991821681179092556006845293829020805490941681179093556019805461010061ff00199182168117909255601280549091169091179055519182527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579101611543565b5050565b6040805160c081018252600b5461ffff808216835262010000820481166020840152600160201b8204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b900490911660a08201526000908185156128695750600a5461ffff16612892565b84156128825750600a5462010000900461ffff16612892565b50600a54600160201b900461ffff165b60006127106128a18387612f3c565b6128ab9190612ed8565b905060008360a0015184606001516128c39190612f73565b61ffff16846060015161ffff16836128db9190612f3c565b6128e59190612ed8565b905060006128f38284612efa565b9050801561296057306000908152600160205260408120805483929061291a908490612f5b565b909155505060405181815230906001600160a01b038c16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b81156129d85781600960008282546129789190612efa565b9250508190555081601b60008282546129919190612f5b565b90915550506040518281526000906001600160a01b038c16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6129e28388612efa565b9a9950505050505050505050565b600c5460405163b6f9de9560e01b81526101009091046001600160a01b03169063b6f9de95908490612a2d90600090889087904290600401613148565b6000604051808303818588803b158015612a4657600080fd5b505af193505050508015612a58575060015b612a6157505050565b601960029054906101000a90046001600160a01b03166001600160a01b031683600181518110612a9357612a93613044565b60200260200101516001600160a01b03161415612ac25781601a6000828254612abc9190612f5b565b90915550505b505050565b600060208083528351808285015260005b81811015612af457858101830151858201604001528201612ad8565b81811115612b06576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114612b3157600080fd5b50565b600060208284031215612b4657600080fd5b81356120a081612b1c565b60008060408385031215612b6457600080fd5b8235612b6f81612b1c565b946020939093013593505050565b600080600060608486031215612b9257600080fd5b8335612b9d81612b1c565b92506020840135612bad81612b1c565b929592945050506040919091013590565b60008060408385031215612bd157600080fd5b50508035926020909101359150565b803561ffff81168114612bf257600080fd5b919050565b600080600060608486031215612c0c57600080fd5b612c1584612be0565b9250612c2360208501612be0565b9150612c3160408501612be0565b90509250925092565b80358015158114612bf257600080fd5b60008060408385031215612c5d57600080fd5b8235612c6881612b1c565b9150612c7660208401612c3a565b90509250929050565b600060208284031215612c9157600080fd5b5035919050565b600080600060608486031215612cad57600080fd5b8335612cb881612b1c565b92506020840135612cc881612b1c565b91506040840135612cd881612b1c565b809150509250925092565b60008060408385031215612cf657600080fd5b612c6883612c3a565b60008060408385031215612d1257600080fd5b8235612d1d81612b1c565b91506020830135612d2d81612b1c565b809150509250929050565b600080600080600060a08688031215612d5057600080fd5b612d5986612be0565b9450612d6760208701612be0565b9350612d7560408701612be0565b9250612d8360608701612be0565b9150612d9160808701612be0565b90509295509295909350565b60008060008060808587031215612db357600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612e20578160001904821115612e0657612e06612dcf565b80851615612e1357918102915b93841c9390800290612dea565b509250929050565b600082612e3757506001610b1c565b81612e4457506000610b1c565b8160018114612e5a5760028114612e6457612e80565b6001915050610b1c565b60ff841115612e7557612e75612dcf565b50506001821b610b1c565b5060208310610133831016604e8410600b8410161715612ea3575081810a610b1c565b612ead8383612de5565b8060001904821115612ec157612ec1612dcf565b029392505050565b60006120a060ff841683612e28565b600082612ef557634e487b7160e01b600052601260045260246000fd5b500490565b600082821015612f0c57612f0c612dcf565b500390565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b6000816000190483118215151615612f5657612f56612dcf565b500290565b60008219821115612f6e57612f6e612dcf565b500190565b600061ffff808316818516808303821115612f9057612f90612dcf565b01949350505050565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b6020808252602e908201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660408201526d103a37ba30b61039bab838363c9760911b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561306c57600080fd5b81516120a081612b1c565b600081518084526020808501945080840160005b838110156130b05781516001600160a01b03168752958201959082019060010161308b565b509495945050505050565b85815284602082015260a0604082015260006130da60a0830186613077565b6001600160a01b0394909416606083015250608001529392505050565b60008060006060848603121561310c57600080fd5b8351925060208401519150604084015190509250925092565b600061ffff8381169083168181101561314057613140612dcf565b039392505050565b8481526080602082015260006131616080830186613077565b6001600160a01b0394909416604083015250606001529291505056fea264697066735822122010e112bdf439a0d6f048dfb74761d24c28568c7abe4ceeeeb45a5b77674ae39d64736f6c63430008090033
Deployed Bytecode
0x60806040526004361061036f5760003560e01c80634fbee193116101c6578063a9059cbb116100f7578063f08f43a211610095578063f9f92be41161006f578063f9f92be414610a96578063fb78680d14610ab6578063fd01bd4c14610ad6578063fdb78c0e14610aec57600080fd5b8063f08f43a2146109ea578063f8ec691114610a0a578063f94aa1b414610a3057600080fd5b8063b7df8b36116100d1578063b7df8b36146108e0578063bfc2fc35146108fa578063cf8477061461091a578063dd62ed3e146109a457600080fd5b8063a9059cbb146108c0578063b1b08f711461059a578063b3d514fb1461059a57600080fd5b806370a08231116101645780637b3efe581161013e5780637b3efe5814610878578063893d20e81461088d5780638a8c523c146108ab57806395d89b411461042757600080fd5b806370a0823114610823578063715018a61461084357806375cb1bd11461085857600080fd5b8063590ffdce116101a0578063590ffdce146107955780635cce86cd146107b55780636e182809146107ee5780636ebd00781461080e57600080fd5b80634fbee1931461071d57806350a8e01614610756578063537df3b61461077557600080fd5b80632b28fc7a116102a057806346ea7ac81161023e5780634b3c109a116102185780634b3c109a146106a75780634bbb93eb146106bd5780634e718e48146106dd5780634fb2e45d146106fd57600080fd5b806346ea7ac81461066257806348726021146106785780634ada218b1461068d57600080fd5b806332cde6641161027a57806332cde664146105e257806336fddb04146106025780633f3cf56c14610622578063452ed4f11461064257600080fd5b80632b28fc7a1461059a5780632e8fa821146105b0578063313ce567146105c657600080fd5b8063095ea7b31161030d57806323b872dd116102e757806323b872dd1461052d578063260039571461054d578063285777511461056f5780632b112e491461058557600080fd5b8063095ea7b3146104e35780630fa604e41461050357806318160ddd1461051857600080fd5b806306fdde031161034957806306fdde03146104275780630758d9241461045b57806307dd79e014610480578063084e4f8a146104aa57600080fd5b806303fd2a451461037b5780630445b667146103ae578063069d955f146103d257600080fd5b3661037657005b600080fd5b34801561038757600080fd5b5061039161dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103ba57600080fd5b506103c460135481565b6040519081526020016103a5565b3480156103de57600080fd5b50600a546104029061ffff80821691620100008104821691600160201b9091041683565b6040805161ffff948516815292841660208401529216918101919091526060016103a5565b34801561043357600080fd5b50604080518082018252600581526450494e475560d81b602082015290516103a59190612ac7565b34801561046757600080fd5b50600c546103919061010090046001600160a01b031681565b34801561048c57600080fd5b50600c5461049a9060ff1681565b60405190151581526020016103a5565b3480156104b657600080fd5b5061049a6104c5366004612b34565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156104ef57600080fd5b5061049a6104fe366004612b51565b610b0b565b34801561050f57600080fd5b506103c4610b22565b34801561052457600080fd5b506009546103c4565b34801561053957600080fd5b5061049a610548366004612b7d565b610b42565b34801561055957600080fd5b5061056d610568366004612bbe565b610bba565b005b34801561057b57600080fd5b506103c460165481565b34801561059157600080fd5b506103c4610c9c565b3480156105a657600080fd5b506103c46107d081565b3480156105bc57600080fd5b506103c460145481565b3480156105d257600080fd5b50604051600981526020016103a5565b3480156105ee57600080fd5b5061056d6105fd366004612bf7565b610cca565b34801561060e57600080fd5b5061056d61061d366004612c4a565b610e0b565b34801561062e57600080fd5b5061056d61063d366004612bbe565b610e60565b34801561064e57600080fd5b50600d54610391906001600160a01b031681565b34801561066e57600080fd5b506103c4610fa081565b34801561068457600080fd5b50601a546103c4565b34801561069957600080fd5b5060195461049a9060ff1681565b3480156106b357600080fd5b506103c4601a5481565b3480156106c957600080fd5b506103c46106d8366004612c7f565b610f53565b3480156106e957600080fd5b5061056d6106f8366004612c7f565b610f85565b34801561070957600080fd5b5061056d610718366004612b34565b610ffe565b34801561072957600080fd5b5061049a610738366004612b34565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561076257600080fd5b5060195461049a90610100900460ff1681565b34801561078157600080fd5b5061056d610790366004612b34565b611131565b3480156107a157600080fd5b5061056d6107b0366004612c4a565b61117c565b3480156107c157600080fd5b5061049a6107d0366004612b34565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156107fa57600080fd5b5061056d610809366004612b34565b6111d1565b34801561081a57600080fd5b506103c461121d565b34801561082f57600080fd5b506103c461083e366004612b34565b611238565b34801561084f57600080fd5b5061056d611253565b34801561086457600080fd5b5061056d610873366004612c98565b6112e2565b34801561088457600080fd5b50601b546103c4565b34801561089957600080fd5b50601c546001600160a01b0316610391565b3480156108b757600080fd5b5061056d61134b565b3480156108cc57600080fd5b5061049a6108db366004612b51565b6114af565b3480156108ec57600080fd5b5060155461049a9060ff1681565b34801561090657600080fd5b5061056d610915366004612ce3565b6114c6565b34801561092657600080fd5b50600b546109679061ffff80821691620100008104821691600160201b8204811691600160301b8104821691600160401b8204811691600160501b90041686565b6040805161ffff978816815295871660208701529386169385019390935290841660608401528316608083015290911660a082015260c0016103a5565b3480156109b057600080fd5b506103c46109bf366004612cff565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156109f657600080fd5b5061056d610a05366004612d38565b61154f565b348015610a1657600080fd5b50601954610391906201000090046001600160a01b031681565b348015610a3c57600080fd5b50600e54600f54601054601154610a63936001600160a01b03908116938116928116911684565b604080516001600160a01b03958616815293851660208501529184169183019190915290911660608201526080016103a5565b348015610aa257600080fd5b5061056d610ab1366004612b34565b6116c6565b348015610ac257600080fd5b5061056d610ad1366004612d9d565b611714565b348015610ae257600080fd5b506103c4601b5481565b348015610af857600080fd5b5060125461049a90610100900460ff1681565b6000610b183384846118c9565b5060015b92915050565b6000610b306009600a612ec9565b601854610b3d9190612ed8565b905090565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610ba7576001600160a01b038416600090815260046020908152604080832033845290915281208054849290610ba1908490612efa565b90915550505b610bb28484846119c2565b949350505050565b601c546001600160a01b03163314610bed5760405162461bcd60e51b8152600401610be490612f11565b60405180910390fd5b6064600954610bfc9190612ed8565b8183600954610c0b9190612f3c565b610c159190612ed8565b1015610c7c5760405162461bcd60e51b815260206004820152603060248201527f4d61782057616c6c657420616d74206d7573742062652061626f76652031252060448201526f37b3103a37ba30b61039bab838363c9760811b6064820152608401610be4565b8082600954610c8b9190612f3c565b610c959190612ed8565b6018555050565b6000610ca86000611238565b610cb361dead611238565b610cbd9190612f5b565b600954610b3d9190612efa565b601c546001600160a01b03163314610cf45760405162461bcd60e51b8152600401610be490612f11565b6107d08361ffff1611158015610d1057506107d08261ffff1611155b8015610d2257506107d08161ffff1611155b610d6e5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610be4565b610fa0610d7b8385612f73565b61ffff161115610dcd5760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f742065786365656420726f756e6474726970206d6178696d756d2e6044820152606401610be4565b600a805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff000000001916600160201b9190931602919091179055565b601c546001600160a01b03163314610e355760405162461bcd60e51b8152600401610be490612f11565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b601c546001600160a01b03163314610e8a5760405162461bcd60e51b8152600401610be490612f11565b6103e86009546005610e9c9190612f3c565b610ea69190612ed8565b8183600954610eb59190612f3c565b610ebf9190612ed8565b1015610f335760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3525206f6620746f74616c20737570706c792e0000000000000000006064820152608401610be4565b8082600954610f429190612f3c565b610f4c9190612ed8565b6017555050565b600d54600090612710908390610f71906001600160a01b0316611238565b610f7b9190612f3c565b610b1c9190612ed8565b601c546001600160a01b03163314610faf5760405162461bcd60e51b8152600401610be490612f11565b6096811115610ff95760405162461bcd60e51b815260206004820152601660248201527521b0b73737ba1039b2ba1030b137bb329018971a929760511b6044820152606401610be4565b601655565b601c546001600160a01b031633146110285760405162461bcd60e51b8152600401610be490612f11565b6001600160a01b03811661104e5760405162461bcd60e51b8152600401610be490612f99565b6001600160a01b03811661dead14156110795760405162461bcd60e51b8152600401610be490612f99565b601c54611090906001600160a01b0316600061117c565b61109b81600161117c565b601c546000906110b3906001600160a01b0316611238565b11156110df57601c546110dd906001600160a01b0316826110d382611238565b6000806001611e13565b505b601c80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b601c546001600160a01b0316331461115b5760405162461bcd60e51b8152600401610be490612f11565b6001600160a01b03166000908152600860205260409020805460ff19169055565b601c546001600160a01b031633146111a65760405162461bcd60e51b8152600401610be490612f11565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b601c546001600160a01b031633146111fb5760405162461bcd60e51b8152600401610be490612f11565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b600061122b6009600a612ec9565b601754610b3d9190612ed8565b6001600160a01b031660009081526001602052604090205490565b601c546001600160a01b0316331461127d5760405162461bcd60e51b8152600401610be490612f11565b601c54611294906001600160a01b0316600061117c565b601c80546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b601c546001600160a01b0316331461130c5760405162461bcd60e51b8152600401610be490612f11565b600e80546001600160a01b039485166001600160a01b031991821617909155600f80549385169382169390931790925560108054919093169116179055565b601c546001600160a01b031633146113755760405162461bcd60e51b8152600401610be490612f11565b60195460ff16156113c85760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610be4565b601954610100900460ff1661141f5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610be4565b6019805460ff19166001179055600d5461271090611445906001600160a01b0316611238565b61145090600a612f3c565b61145a9190612ed8565b601355600d5461271090611476906001600160a01b0316611238565b61148190601e612f3c565b61148b9190612ed8565b601455600c546114ad90309061010090046001600160a01b03166000196118c9565b565b60006114bc3384846119c2565b5060019392505050565b601c546001600160a01b031633146114f05760405162461bcd60e51b8152600401610be490612f11565b6012805461ff001916610100841515908102919091179091556015805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b601c546001600160a01b031633146115795760405162461bcd60e51b8152600401610be490612f11565b600b805461ffff87811663ffffffff199092169190911762010000878316021767ffffffff000000001916600160201b8683160267ffff000000000000191617600160301b858316021769ffff00000000000000001916600160401b9184169190910217905580836115eb8688612f73565b6115f59190612f73565b6115ff9190612f73565b600b805461ffff60501b1916600160501b61ffff93841602179055600a546000916116339162010000810482169116612f73565b600b5461ffff9182169250829161165c91600160301b8104821691600160501b90910416612f73565b61ffff1611156116be5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206578636565642073756d206f662062757920616e642073656c60448201526636103332b2b99760c91b6064820152608401610be4565b505050505050565b601c546001600160a01b031633146116f05760405162461bcd60e51b8152600401610be490612f11565b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b601c546001600160a01b0316331461173e5760405162461bcd60e51b8152600401610be490612f11565b828460095461174d9190612f3c565b6117579190612ed8565b601355600954819061176a908490612f3c565b6117749190612ed8565b601481905560135411156117d45760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610be4565b600d54612710906117ed906001600160a01b0316611238565b6117f8906096612f3c565b6118029190612ed8565b601454111561185f5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610be4565b620f42406009546118709190612ed8565b60145410156118915760405162461bcd60e51b8152600401610be490612ff6565b620f42406009546118a29190612ed8565b60135410156118c35760405162461bcd60e51b8152600401610be490612ff6565b50505050565b6001600160a01b0383166119155760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610be4565b6001600160a01b0382166119615760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610be4565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611a285760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610be4565b6001600160a01b038316611a8a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610be4565b60008211611aec5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610be4565b6001600160a01b03841660009081526008602052604090205460ff16158015611b2e57506001600160a01b03831660009081526008602052604090205460ff16155b611b3757600080fd5b6001600160a01b0384166000908152600260205260408120548190819060ff1615611b655760019250611b93565b6001600160a01b03861660009081526002602052604090205460ff1615611b8f5760019150611b93565b5060015b611b9d8787611fd0565b15611d6a5760195460ff16611bf45760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610be4565b8280611bfd5750815b15611cac576001600160a01b03871660009081526007602052604090205460ff16158015611c4457506001600160a01b03861660009081526007602052604090205460ff16155b15611cac57601754851115611cac5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610be4565b600c546001600160a01b038781166101009092041614801590611ccd575081155b15611d6a576001600160a01b03861660009081526007602052604090205460ff16611d6a5760185485611cff88611238565b611d099190612f5b565b1115611d6a5760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610be4565b8115611dfa5760125460ff16611dfa57601254610100900460ff1615611dfa576000611d9530611238565b90506013548110611df85760145460155460ff1615611de257601654600d546127109190611dcb906001600160a01b0316611238565b611dd59190612f3c565b611ddf9190612ed8565b90505b808210611ded578091505b611df6826120a7565b505b505b611e08878787868686611e13565b979650505050505050565b601954600090610100900460ff16611eae57611e2f87876126dd565b601954610100900460ff16158015611e4c5750611e4c8787611fd0565b8015611e56575081155b15611eae5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610be4565b6001600160a01b03871660009081526006602052604090205460019060ff1680611ef057506001600160a01b03871660009081526006602052604090205460ff165b15611ef9575060005b6001600160a01b03881660009081526001602052604081208054889290611f21908490612efa565b909155506000905081611f345786611f40565b611f408987878a6127f5565b6001600160a01b038916600090815260016020526040812080549293508392909190611f6d908490612f5b565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fb991815260200190565b60405180910390a350600198975050505050505050565b601c546000906001600160a01b03848116911614801590611fff5750601c546001600160a01b03838116911614155b80156120165750601c546001600160a01b03163214155b801561203b57506001600160a01b03821660009081526005602052604090205460ff16155b801561206057506001600160a01b03831660009081526005602052604090205460ff16155b801561207757506001600160a01b03821661dead14155b801561208b57506001600160a01b03821615155b80156120a057506001600160a01b0383163014155b9392505050565b6012805460ff191660011790556040805160c081018252600b5461ffff808216835262010000820481166020840152600160201b8204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b900490911660a0820181905261211d57506126d0565b306000908152600460209081526040808320600c5461010090046001600160a01b031684529091529020546000191461218057306000908152600460209081526040808320600c5461010090046001600160a01b03168452909152902060001990555b600060028260a0015161ffff16836000015161ffff16856121a19190612f3c565b6121ab9190612ed8565b6121b59190612ed8565b905060006121c38285612efa565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106121fd576121fd613044565b60200260200101906001600160a01b031690816001600160a01b031681525050600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561226b57600080fd5b505afa15801561227f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a3919061305a565b816001815181106122b6576122b6613044565b6001600160a01b039283166020918202929092010152600c5460405163791ac94760e01b81526101009091049091169063791ac947906123039085906000908690309042906004016130bb565b600060405180830381600087803b15801561231d57600080fd5b505af192505050801561232e575060015b61233b57505050506126d0565b476000836123498684612f3c565b6123539190612ed8565b9050841561244857600c5460105460405163f305d71960e01b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a4820152610100909204169063f305d71990839060c4016060604051808303818588803b1580156123cb57600080fd5b505af1935050505080156123fc575060408051601f3d908101601f191682019092526123f9918101906130f7565b60015b61240b575050505050506126d0565b505060408051838152602081018890527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b6124528183612efa565b915085600001518660a00181815161246a9190613125565b61ffff90811690915260a0880151604089015160009350839291821691612492911686612f3c565b61249c9190612ed8565b6019549091506000906201000090046001600160a01b03166124bf5760006124e6565b8860a0015161ffff16896080015161ffff16866124dc9190612f3c565b6124e69190612ed8565b905060006124f48284612f5b565b6124fe9087612efa565b9050801561256357600e546040516001600160a01b03909116906188b89083906000818181858888f193505050503d8060008114612558576040519150601f19603f3d011682016040523d82523d6000602084013e61255d565b606091505b50909450505b82156125c657600f546040516001600160a01b03909116906188b89085906000818181858888f193505050503d80600081146125bb576040519150601f19603f3d011682016040523d82523d6000602084013e6125c0565b606091505b50909450505b81156126c557600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561261a57600080fd5b505afa15801561262e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612652919061305a565b8760008151811061266557612665613044565b6001600160a01b039283166020918202929092010152601954885162010000909104909116908890600190811061269e5761269e613044565b6001600160a01b0392831660209182029290920101526011546126c59189918591166129f0565b505050505050505050505b506012805460ff19169055565b601954610100900460ff16156127415760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610be4565b61274b8282611fd0565b1580156127655750600d546001600160a01b038281169116145b156127f1576001600160a01b03821660009081526005602090815260408083208054600160ff1991821681179092556006845293829020805490941681179093556019805461010061ff00199182168117909255601280549091169091179055519182527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579101611543565b5050565b6040805160c081018252600b5461ffff808216835262010000820481166020840152600160201b8204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b900490911660a08201526000908185156128695750600a5461ffff16612892565b84156128825750600a5462010000900461ffff16612892565b50600a54600160201b900461ffff165b60006127106128a18387612f3c565b6128ab9190612ed8565b905060008360a0015184606001516128c39190612f73565b61ffff16846060015161ffff16836128db9190612f3c565b6128e59190612ed8565b905060006128f38284612efa565b9050801561296057306000908152600160205260408120805483929061291a908490612f5b565b909155505060405181815230906001600160a01b038c16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b81156129d85781600960008282546129789190612efa565b9250508190555081601b60008282546129919190612f5b565b90915550506040518281526000906001600160a01b038c16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6129e28388612efa565b9a9950505050505050505050565b600c5460405163b6f9de9560e01b81526101009091046001600160a01b03169063b6f9de95908490612a2d90600090889087904290600401613148565b6000604051808303818588803b158015612a4657600080fd5b505af193505050508015612a58575060015b612a6157505050565b601960029054906101000a90046001600160a01b03166001600160a01b031683600181518110612a9357612a93613044565b60200260200101516001600160a01b03161415612ac25781601a6000828254612abc9190612f5b565b90915550505b505050565b600060208083528351808285015260005b81811015612af457858101830151858201604001528201612ad8565b81811115612b06576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114612b3157600080fd5b50565b600060208284031215612b4657600080fd5b81356120a081612b1c565b60008060408385031215612b6457600080fd5b8235612b6f81612b1c565b946020939093013593505050565b600080600060608486031215612b9257600080fd5b8335612b9d81612b1c565b92506020840135612bad81612b1c565b929592945050506040919091013590565b60008060408385031215612bd157600080fd5b50508035926020909101359150565b803561ffff81168114612bf257600080fd5b919050565b600080600060608486031215612c0c57600080fd5b612c1584612be0565b9250612c2360208501612be0565b9150612c3160408501612be0565b90509250925092565b80358015158114612bf257600080fd5b60008060408385031215612c5d57600080fd5b8235612c6881612b1c565b9150612c7660208401612c3a565b90509250929050565b600060208284031215612c9157600080fd5b5035919050565b600080600060608486031215612cad57600080fd5b8335612cb881612b1c565b92506020840135612cc881612b1c565b91506040840135612cd881612b1c565b809150509250925092565b60008060408385031215612cf657600080fd5b612c6883612c3a565b60008060408385031215612d1257600080fd5b8235612d1d81612b1c565b91506020830135612d2d81612b1c565b809150509250929050565b600080600080600060a08688031215612d5057600080fd5b612d5986612be0565b9450612d6760208701612be0565b9350612d7560408701612be0565b9250612d8360608701612be0565b9150612d9160808701612be0565b90509295509295909350565b60008060008060808587031215612db357600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612e20578160001904821115612e0657612e06612dcf565b80851615612e1357918102915b93841c9390800290612dea565b509250929050565b600082612e3757506001610b1c565b81612e4457506000610b1c565b8160018114612e5a5760028114612e6457612e80565b6001915050610b1c565b60ff841115612e7557612e75612dcf565b50506001821b610b1c565b5060208310610133831016604e8410600b8410161715612ea3575081810a610b1c565b612ead8383612de5565b8060001904821115612ec157612ec1612dcf565b029392505050565b60006120a060ff841683612e28565b600082612ef557634e487b7160e01b600052601260045260246000fd5b500490565b600082821015612f0c57612f0c612dcf565b500390565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b6000816000190483118215151615612f5657612f56612dcf565b500290565b60008219821115612f6e57612f6e612dcf565b500190565b600061ffff808316818516808303821115612f9057612f90612dcf565b01949350505050565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b6020808252602e908201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660408201526d103a37ba30b61039bab838363c9760911b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561306c57600080fd5b81516120a081612b1c565b600081518084526020808501945080840160005b838110156130b05781516001600160a01b03168752958201959082019060010161308b565b509495945050505050565b85815284602082015260a0604082015260006130da60a0830186613077565b6001600160a01b0394909416606083015250608001529392505050565b60008060006060848603121561310c57600080fd5b8351925060208401519150604084015190509250925092565b600061ffff8381169083168181101561314057613140612dcf565b039392505050565b8481526080602082015260006131616080830186613077565b6001600160a01b0394909416604083015250606001529291505056fea264697066735822122010e112bdf439a0d6f048dfb74761d24c28568c7abe4ceeeeb45a5b77674ae39d64736f6c63430008090033
Deployed Bytecode Sourcemap
3567:20347:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5318:73;;;;;;;;;;;;5349:42;5318:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;5318:73:0;;;;;;;;5923:28;;;;;;;;;;;;;;;;;;;368:25:1;;;356:2;341:18;5923:28:0;222:177:1;4662:109:0;;;;;;;;;;-1:-1:-1;4662:109:0;;;;;;;;;;;;;;;-1:-1:-1;;;4662:109:0;;;;;;;;;;610:6:1;643:15;;;625:34;;695:15;;;690:2;675:18;;668:43;747:15;;727:18;;;720:43;;;;588:2;573:18;4662:109:0;404:365:1;9676:80:0;;;;;;;;;;-1:-1:-1;9748:5:0;;;;;;;;;;;-1:-1:-1;;;9748:5:0;;;;9676:80;;;;9748:5;9676:80;:::i;5257:26::-;;;;;;;;;;-1:-1:-1;5257:26:0;;;;;;;-1:-1:-1;;;;;5257:26:0;;;5224;;;;;;;;;;-1:-1:-1;5224:26:0;;;;;;;;;;;1766:14:1;;1759:22;1741:41;;1729:2;1714:18;5224:26:0;1601:187:1;23789:120:0;;;;;;;;;;-1:-1:-1;23789:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;23887:14:0;23863:4;23887:14;;;:4;:14;;;;;;;;;23789:120;10284:161;;;;;;;;;;-1:-1:-1;10284:161:0;;;;;:::i;:::-;;:::i;13984:114::-;;;;;;;;;;;;;:::i;9411:83::-;;;;;;;;;;-1:-1:-1;9484:7:0;;9411:83;;10771:306;;;;;;;;;;-1:-1:-1;10771:306:0;;;;;:::i;:::-;;:::i;13596:264::-;;;;;;;;;;-1:-1:-1;13596:264:0;;;;;:::i;:::-;;:::i;:::-;;6031:33;;;;;;;;;;;;;;;;11650:141;;;;;;;;;;;;;:::i;4968:42::-;;;;;;;;;;;;5006:4;4968:42;;5958:25;;;;;;;;;;;;;;;;9500:80;;;;;;;;;;-1:-1:-1;9500:80:0;;4294:1;3357:36:1;;3345:2;3330:18;9500:80:0;3215:184:1;11799:488:0;;;;;;;;;;-1:-1:-1;11799:488:0;;;;;:::i;:::-;;:::i;11360:140::-;;;;;;;;;;-1:-1:-1;11360:140:0;;;;;:::i;:::-;;:::i;13315:273::-;;;;;;;;;;-1:-1:-1;13315:273:0;;;;;:::i;:::-;;:::i;5290:21::-;;;;;;;;;;-1:-1:-1;5290:21:0;;;;-1:-1:-1;;;;;5290:21:0;;;5121:46;;;;;;;;;;;;5163:4;5121:46;;15506:134;;;;;;;;;;-1:-1:-1;15619:13:0;;15506:134;;6195:34;;;;;;;;;;-1:-1:-1;6195:34:0;;;;;;;;6328:28;;;;;;;;;;;;;;;;14106:189;;;;;;;;;;-1:-1:-1;14106:189:0;;;;;:::i;:::-;;:::i;15010:217::-;;;;;;;;;;-1:-1:-1;15010:217:0;;;;;:::i;:::-;;:::i;8169:654::-;;;;;;;;;;-1:-1:-1;8169:654:0;;;;;:::i;:::-;;:::i;11225:127::-;;;;;;;;;;-1:-1:-1;11225:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;11316:28:0;11292:4;11316:28;;;:19;:28;;;;;;;;;11225:127;6236:36;;;;;;;;;;-1:-1:-1;6236:36:0;;;;;;;;;;;23669:108;;;;;;;;;;-1:-1:-1;23669:108:0;;;;;:::i;:::-;;:::i;11508:134::-;;;;;;;;;;-1:-1:-1;11508:134:0;;;;;:::i;:::-;;:::i;11085:132::-;;;;;;;;;;-1:-1:-1;11085:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;11179:30:0;11155:4;11179:30;;;:21;:30;;;;;;;;;11085:132;13171:136;;;;;;;;;;-1:-1:-1;13171:136:0;;;;;:::i;:::-;;:::i;13868:108::-;;;;;;;;;;;;;:::i;9986:117::-;;;;;;;;;;-1:-1:-1;9986:117:0;;;;;:::i;:::-;;:::i;8831:225::-;;;;;;;;;;;;;:::i;12870:293::-;;;;;;;;;;-1:-1:-1;12870:293:0;;;;;:::i;:::-;;:::i;15648:119::-;;;;;;;;;;-1:-1:-1;15747:12:0;;15648:119;;9762:79;;;;;;;;;;-1:-1:-1;9832:6:0;;-1:-1:-1;;;;;9832:6:0;9762:79;;21402:399;;;;;;;;;;;;;:::i;10111:165::-;;;;;;;;;;-1:-1:-1;10111:165:0;;;;;:::i;:::-;;:::i;5990:34::-;;;;;;;;;;-1:-1:-1;5990:34:0;;;;;;;;15235:263;;;;;;;;;;-1:-1:-1;15235:263:0;;;;;:::i;:::-;;:::i;4780:179::-;;;;;;;;;;-1:-1:-1;4780:179:0;;;;;;;;;;;;;;;-1:-1:-1;;;4780:179:0;;;;;-1:-1:-1;;;4780:179:0;;;;;-1:-1:-1;;;4780:179:0;;;;;-1:-1:-1;;;4780:179:0;;;;;;;;;5927:6:1;5960:15;;;5942:34;;6012:15;;;6007:2;5992:18;;5985:43;6064:15;;;6044:18;;;6037:43;;;;6116:15;;;6111:2;6096:18;;6089:43;6169:15;;6163:3;6148:19;;6141:44;6222:15;;;6216:3;6201:19;;6194:44;5904:3;5889:19;4780:179:0;5642:602:1;9847:133:0;;;;;;;;;;-1:-1:-1;9847:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9949:19:0;;;9931:7;9949:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9847:133;12295:567;;;;;;;;;;-1:-1:-1;12295:567:0;;;;;:::i;:::-;;:::i;6281:38::-;;;;;;;;;;-1:-1:-1;6281:38:0;;;;;;;-1:-1:-1;;;;;6281:38:0;;;5578:268;;;;;;;;;;-1:-1:-1;5578:268:0;;;;;;;;;;-1:-1:-1;;;;;5578:268:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7472:15:1;;;7454:34;;7524:15;;;7519:2;7504:18;;7497:43;7576:15;;;7556:18;;;7549:43;;;;7628:15;;;7623:2;7608:18;;7601:43;7403:3;7388:19;5578:268:0;7121:529:1;23560:97:0;;;;;;;;;;-1:-1:-1;23560:97:0;;;;;:::i;:::-;;:::i;14303:699::-;;;;;;;;;;-1:-1:-1;14303:699:0;;;;;:::i;:::-;;:::i;6363:27::-;;;;;;;;;;;;;;;;5877:39;;;;;;;;;;-1:-1:-1;5877:39:0;;;;;;;;;;;10284:161;10361:4;10378:37;10387:10;10399:7;10408:6;10378:8;:37::i;:::-;-1:-1:-1;10433:4:0;10284:161;;;;;:::o;13984:114::-;14031:7;14076:13;4294:1;14076:2;:13;:::i;:::-;14058:14;;:32;;;;:::i;:::-;14051:39;;13984:114;:::o;10771:306::-;-1:-1:-1;;;;;10892:19:0;;10871:4;10892:19;;;:11;:19;;;;;;;;10912:10;10892:31;;;;;;;;-1:-1:-1;;10892:52:0;10888:126;;-1:-1:-1;;;;;10961:19:0;;;;;;:11;:19;;;;;;;;10981:10;10961:31;;;;;;;:41;;10996:6;;10961:19;:41;;10996:6;;10961:41;:::i;:::-;;;;-1:-1:-1;;10888:126:0;11033:36;11043:6;11051:9;11062:6;11033:9;:36::i;:::-;11026:43;10771:306;-1:-1:-1;;;;10771:306:0:o;13596:264::-;6755:6;;-1:-1:-1;;;;;6755:6:0;6765:10;6755:20;6747:50;;;;-1:-1:-1;;;6747:50:0;;;;;;;:::i;:::-;;;;;;;;;13738:3:::1;13728:7;;:13;;;;:::i;:::-;13716:7;13705;13695;;:17;;;;:::i;:::-;13694:29;;;;:::i;:::-;:48;;13686:109;;;::::0;-1:-1:-1;;;13686:109:0;;10633:2:1;13686:109:0::1;::::0;::::1;10615:21:1::0;10672:2;10652:18;;;10645:30;10711:34;10691:18;;;10684:62;-1:-1:-1;;;10762:18:1;;;10755:46;10818:19;;13686:109:0::1;10431:412:1::0;13686:109:0::1;13845:7;13834;13824;;:17;;;;:::i;:::-;13823:29;;;;:::i;:::-;13806:14;:46:::0;-1:-1:-1;;13596:264:0:o;11650:141::-;11703:7;11760:21;11778:1;11760:9;:21::i;:::-;11742:15;5349:42;11742:9;:15::i;:::-;:39;;;;:::i;:::-;11731:7;;:51;;;;:::i;11799:488::-;6755:6;;-1:-1:-1;;;;;6755:6:0;6765:10;6755:20;6747:50;;;;-1:-1:-1;;;6747:50:0;;;;;;;:::i;:::-;5006:4:::1;11906:6;:21;;;;:65;;;;;5056:4;11948:7;:23;;;;11906:65;:117;;;;;5110:4;11992:11;:31;;;;11906:117;11898:170;;;::::0;-1:-1:-1;;;11898:170:0;;11183:2:1;11898:170:0::1;::::0;::::1;11165:21:1::0;11222:2;11202:18;;;11195:30;11261:25;11241:18;;;11234:53;11304:18;;11898:170:0::1;10981:347:1::0;11898:170:0::1;5163:4;12087:16;12096:7:::0;12087:6;:16:::1;:::i;:::-;:35;;;;12079:80;;;::::0;-1:-1:-1;;;12079:80:0;;11764:2:1;12079:80:0::1;::::0;::::1;11746:21:1::0;;;11783:18;;;11776:30;11842:34;11822:18;;;11815:62;11894:18;;12079:80:0::1;11562:356:1::0;12079:80:0::1;12170:9;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;12206:27:0;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;12244:35:0::1;-1:-1:-1::0;;;12244:35:0;;;::::1;;::::0;;;::::1;::::0;;11799:488::o;11360:140::-;6755:6;;-1:-1:-1;;;;;6755:6:0;6765:10;6755:20;6747:50;;;;-1:-1:-1;;;6747:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11452:30:0;;;::::1;;::::0;;;:21:::1;:30;::::0;;;;:40;;-1:-1:-1;;11452:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11360:140::o;13315:273::-;6755:6;;-1:-1:-1;;;;;6755:6:0;6765:10;6755:20;6747:50;;;;-1:-1:-1;;;6747:50:0;;;;;;;:::i;:::-;13460:4:::1;13446:7;;13456:1;13446:11;;;;:::i;:::-;:18;;;;:::i;:::-;13434:7;13423;13413;;:17;;;;:::i;:::-;13412:29;;;;:::i;:::-;:53;;13404:121;;;::::0;-1:-1:-1;;;13404:121:0;;12125:2:1;13404:121:0::1;::::0;::::1;12107:21:1::0;12164:2;12144:18;;;12137:30;12203:34;12183:18;;;12176:62;12274:25;12254:18;;;12247:53;12317:19;;13404:121:0::1;11923:419:1::0;13404:121:0::1;13573:7;13562;13552;;:17;;;;:::i;:::-;13551:29;;;;:::i;:::-;13536:12;:44:::0;-1:-1:-1;;13315:273:0:o;14106:189::-;14235:6;;14197:7;;5210:5;;14245:21;;14225:17;;-1:-1:-1;;;;;14235:6:0;14225:9;:17::i;:::-;:41;;;;:::i;:::-;14224:62;;;;:::i;15010:217::-;6755:6;;-1:-1:-1;;;;;6755:6:0;6765:10;6755:20;6747:50;;;;-1:-1:-1;;;6747:50:0;;;;;;;:::i;:::-;15140:3:::1;15114:22;:29;;15106:64;;;::::0;-1:-1:-1;;;15106:64:0;;12549:2:1;15106:64:0::1;::::0;::::1;12531:21:1::0;12588:2;12568:18;;;12561:30;-1:-1:-1;;;12607:18:1;;;12600:52;12669:18;;15106:64:0::1;12347:346:1::0;15106:64:0::1;15181:13;:38:::0;15010:217::o;8169:654::-;6755:6;;-1:-1:-1;;;;;6755:6:0;6765:10;6755:20;6747:50;;;;-1:-1:-1;;;6747:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8248:22:0;::::1;8240:96;;;;-1:-1:-1::0;;;8240:96:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8355:16:0;::::1;5349:42;8355:16;;8347:90;;;;-1:-1:-1::0;;;8347:90:0::1;;;;;;;:::i;:::-;8468:6;::::0;8448:34:::1;::::0;-1:-1:-1;;;;;8468:6:0::1;;8448:19;:34::i;:::-;8493:35;8513:8;8523:4;8493:19;:35::i;:::-;8563:6;::::0;8573:1:::1;::::0;8553:17:::1;::::0;-1:-1:-1;;;;;8563:6:0::1;8553:9;:17::i;:::-;:21;8549:127;;;8608:6;::::0;8591:73:::1;::::0;-1:-1:-1;;;;;8608:6:0::1;8616:8:::0;8626:17:::1;8608:6:::0;8626:9:::1;:17::i;:::-;8645:5;8652::::0;8659:4:::1;8591:16;:73::i;:::-;;8549:127;8715:6;::::0;;-1:-1:-1;;;;;8732:17:0;;::::1;-1:-1:-1::0;;;;;;8732:17:0;::::1;::::0;::::1;::::0;;;8765:40:::1;::::0;8715:6;::::1;::::0;8732:17;8715:6;;8765:40:::1;::::0;8696:16:::1;::::0;8765:40:::1;8229:594;8169:654:::0;:::o;23669:108::-;6755:6;;-1:-1:-1;;;;;6755:6:0;6765:10;6755:20;6747:50;;;;-1:-1:-1;;;6747:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23747:14:0::1;23764:5;23747:14:::0;;;:4:::1;:14;::::0;;;;:22;;-1:-1:-1;;23747:22:0::1;::::0;;23669:108::o;11508:134::-;6755:6;;-1:-1:-1;;;;;6755:6:0;6765:10;6755:20;6747:50;;;;-1:-1:-1;;;6747:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11596:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;11596:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11508:134::o;13171:136::-;6755:6;;-1:-1:-1;;;;;6755:6:0;6765:10;6755:20;6747:50;;;;-1:-1:-1;;;6747:50:0;;;;;;;:::i;:::-;13260:19;:39;;-1:-1:-1;;;;;;13260:39:0::1;-1:-1:-1::0;;;;;13260:39:0;;;::::1;::::0;;;::::1;::::0;;13171:136::o;13868:108::-;13911:7;13954:13;4294:1;13954:2;:13;:::i;:::-;13938:12;;:30;;;;:::i;9986:117::-;-1:-1:-1;;;;;10079:16:0;10052:7;10079:16;;;:7;:16;;;;;;;9986:117::o;8831:225::-;6755:6;;-1:-1:-1;;;;;6755:6:0;6765:10;6755:20;6747:50;;;;-1:-1:-1;;;6747:50:0;;;;;;;:::i;:::-;8910:6:::1;::::0;8890:34:::1;::::0;-1:-1:-1;;;;;8910:6:0::1;;8890:19;:34::i;:::-;8954:6;::::0;;-1:-1:-1;;;;;;8971:19:0;::::1;::::0;;;9006:42:::1;::::0;-1:-1:-1;;;;;8954:6:0;;::::1;::::0;8935:16:::1;::::0;8954:6;;9006:42:::1;::::0;8935:16;;9006:42:::1;8879:177;8831:225::o:0;12870:293::-;6755:6;;-1:-1:-1;;;;;6755:6:0;6765:10;6755:20;6747:50;;;;-1:-1:-1;;;6747:50:0;;;;;;;:::i;:::-;13003:11:::1;:42:::0;;-1:-1:-1;;;;;13003:42:0;;::::1;-1:-1:-1::0;;;;;;13003:42:0;;::::1;;::::0;;;13056:23;:46;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;13113:21;:42;;;;;::::1;::::0;::::1;;::::0;;12870:293::o;21402:399::-;6755:6;;-1:-1:-1;;;;;6755:6:0;6765:10;6755:20;6747:50;;;;-1:-1:-1;;;6747:50:0;;;;;;;:::i;:::-;21464:14:::1;::::0;::::1;;21463:15;21455:52;;;::::0;-1:-1:-1;;;21455:52:0;;13330:2:1;21455:52:0::1;::::0;::::1;13312:21:1::0;13369:2;13349:18;;;13342:30;13408:26;13388:18;;;13381:54;13452:18;;21455:52:0::1;13128:348:1::0;21455:52:0::1;21526:16;::::0;::::1;::::0;::::1;;;21518:53;;;::::0;-1:-1:-1;;;21518:53:0;;13683:2:1;21518:53:0::1;::::0;::::1;13665:21:1::0;13722:2;13702:18;;;13695:30;13761:26;13741:18;;;13734:54;13805:18;;21518:53:0::1;13481:348:1::0;21518:53:0::1;21582:14;:21:::0;;-1:-1:-1;;21582:21:0::1;21599:4;21582:21;::::0;;21641:6:::1;::::0;21657:5:::1;::::0;21631:17:::1;::::0;-1:-1:-1;;;;;21641:6:0::1;21631:9;:17::i;:::-;:22;::::0;21651:2:::1;21631:22;:::i;:::-;21630:32;;;;:::i;:::-;21614:13;:48:::0;21697:6:::1;::::0;21713:5:::1;::::0;21687:17:::1;::::0;-1:-1:-1;;;;;21697:6:0::1;21687:9;:17::i;:::-;:22;::::0;21707:2:::1;21687:22;:::i;:::-;21686:32;;;;:::i;:::-;21673:10;:45:::0;21761:9:::1;::::0;21729:62:::1;::::0;21746:4:::1;::::0;21761:9:::1;::::0;::::1;-1:-1:-1::0;;;;;21761:9:0::1;-1:-1:-1::0;;21729:8:0::1;:62::i;:::-;21402:399::o:0;10111:165::-;10189:4;10206:40;10216:10;10228:9;10239:6;10206:9;:40::i;:::-;-1:-1:-1;10264:4:0;;10111:165;-1:-1:-1;;;10111:165:0:o;15235:263::-;6755:6;;-1:-1:-1;;;;;6755:6:0;6765:10;6755:20;6747:50;;;;-1:-1:-1;;;6747:50:0;;;;;;;:::i;:::-;15344:19:::1;:33:::0;;-1:-1:-1;;15344:33:0::1;;::::0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;15388:22:::1;:47:::0;;-1:-1:-1;;15388:47:0::1;::::0;::::1;;;::::0;;15451:39:::1;::::0;1741:41:1;;;15451:39:0::1;::::0;1729:2:1;1714:18;15451:39:0::1;;;;;;;;15235:263:::0;;:::o;12295:567::-;6755:6;;-1:-1:-1;;;;;6755:6:0;6765:10;6755:20;6747:50;;;;-1:-1:-1;;;6747:50:0;;;;;;;:::i;:::-;12430:7:::1;:29:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;12470:29:0;;;;;;;;;;::::1;;;-1:-1:-1::0;;12554:19:0;-1:-1:-1;;;12510:33:0;;::::1;;-1:-1:-1::0;;12554:19:0;;-1:-1:-1;;;12554:19:0;;::::1;;;-1:-1:-1::0;;12584:26:0::1;-1:-1:-1::0;;;12584:26:0;;::::1;::::0;;;::::1;;::::0;;;12510:33;12641:21:::1;12470:29:::0;12430;12641:21:::1;:::i;:::-;:35;;;;:::i;:::-;:46;;;;:::i;:::-;12621:7;:66:::0;;-1:-1:-1;;;;12621:66:0::1;-1:-1:-1::0;;;12621:66:0::1;::::0;;::::1;;;::::0;;:17:::1;12733::::0;-1:-1:-1;;12714:36:0::1;::::0;12733:17;;::::1;::::0;::::1;::::0;12714:16:::1;:36;:::i;:::-;12789:7;:12:::0;12698:52:::1;::::0;;::::1;::::0;-1:-1:-1;12698:52:0;;12769:32:::1;::::0;-1:-1:-1;;;12789:12:0;::::1;::::0;::::1;::::0;-1:-1:-1;;;12769:17:0;;::::1;;:32;:::i;:::-;:41;;;;12761:93;;;::::0;-1:-1:-1;;;12761:93:0;;14036:2:1;12761:93:0::1;::::0;::::1;14018:21:1::0;14075:2;14055:18;;;14048:30;14114:34;14094:18;;;14087:62;-1:-1:-1;;;14165:18:1;;;14158:37;14212:19;;12761:93:0::1;13834:403:1::0;12761:93:0::1;12419:443;12295:567:::0;;;;;:::o;23560:97::-;6755:6;;-1:-1:-1;;;;;6755:6:0;6765:10;6755:20;6747:50;;;;-1:-1:-1;;;6747:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23628:14:0::1;;::::0;;;:4:::1;:14;::::0;;;;:21;;-1:-1:-1;;23628:21:0::1;23645:4;23628:21;::::0;;23560:97::o;14303:699::-;6755:6;;-1:-1:-1;;;;;6755:6:0;6765:10;6755:20;6747:50;;;;-1:-1:-1;;;6747:50:0;;;;;;;:::i;:::-;14503:16:::1;14483;14473:7;;:26;;;;:::i;:::-;14472:47;;;;:::i;:::-;14456:13;:63:::0;14544:7:::1;::::0;14571:13;;14544:23:::1;::::0;14554:13;;14544:23:::1;:::i;:::-;14543:41;;;;:::i;:::-;14530:10;:54:::0;;;14603:13:::1;::::0;:27:::1;;14595:73;;;::::0;-1:-1:-1;;;14595:73:0;;14444:2:1;14595:73:0::1;::::0;::::1;14426:21:1::0;14483:2;14463:18;;;14456:30;14522:34;14502:18;;;14495:62;-1:-1:-1;;;14573:18:1;;;14566:31;14614:19;;14595:73:0::1;14242:397:1::0;14595:73:0::1;14712:6;::::0;5210:5:::1;::::0;14702:17:::1;::::0;-1:-1:-1;;;;;14712:6:0::1;14702:9;:17::i;:::-;:23;::::0;14722:3:::1;14702:23;:::i;:::-;14701:44;;;;:::i;:::-;14687:10;;:58;;14679:106;;;::::0;-1:-1:-1;;;14679:106:0;;14846:2:1;14679:106:0::1;::::0;::::1;14828:21:1::0;14885:2;14865:18;;;14858:30;14924:34;14904:18;;;14897:62;-1:-1:-1;;;14975:18:1;;;14968:33;15018:19;;14679:106:0::1;14644:399:1::0;14679:106:0::1;14828:9;14818:7;;:19;;;;:::i;:::-;14804:10;;:33;;14796:92;;;;-1:-1:-1::0;;;14796:92:0::1;;;;;;;:::i;:::-;14934:9;14924:7;;:19;;;;:::i;:::-;14907:13;;:36;;14899:95;;;;-1:-1:-1::0;;;14899:95:0::1;;;;;;;:::i;:::-;14303:699:::0;;;;:::o;10453:310::-;-1:-1:-1;;;;;10548:20:0;;10540:52;;;;-1:-1:-1;;;10540:52:0;;15665:2:1;10540:52:0;;;15647:21:1;15704:2;15684:18;;;15677:30;-1:-1:-1;;;15723:18:1;;;15716:49;15782:18;;10540:52:0;15463:343:1;10540:52:0;-1:-1:-1;;;;;10611:21:0;;10603:53;;;;-1:-1:-1;;;10603:53:0;;15665:2:1;10603:53:0;;;15647:21:1;15704:2;15684:18;;;15677:30;-1:-1:-1;;;15723:18:1;;;15716:49;15782:18;;10603:53:0;15463:343:1;10603:53:0;-1:-1:-1;;;;;10669:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;10722:33;;368:25:1;;;10722:33:0;;341:18:1;10722:33:0;;;;;;;10453:310;;;:::o;16141:1992::-;16220:4;-1:-1:-1;;;;;16245:18:0;;16237:68;;;;-1:-1:-1;;;16237:68:0;;16013:2:1;16237:68:0;;;15995:21:1;16052:2;16032:18;;;16025:30;16091:34;16071:18;;;16064:62;-1:-1:-1;;;16142:18:1;;;16135:35;16187:19;;16237:68:0;15811:401:1;16237:68:0;-1:-1:-1;;;;;16324:16:0;;16316:64;;;;-1:-1:-1;;;16316:64:0;;16419:2:1;16316:64:0;;;16401:21:1;16458:2;16438:18;;;16431:30;16497:34;16477:18;;;16470:62;-1:-1:-1;;;16548:18:1;;;16541:33;16591:19;;16316:64:0;16217:399:1;16316:64:0;16408:1;16399:6;:10;16391:64;;;;-1:-1:-1;;;16391:64:0;;16823:2:1;16391:64:0;;;16805:21:1;16862:2;16842:18;;;16835:30;16901:34;16881:18;;;16874:62;-1:-1:-1;;;16952:18:1;;;16945:39;17001:19;;16391:64:0;16621:405:1;16391:64:0;-1:-1:-1;;;;;16475:10:0;;;;;;:4;:10;;;;;;;;16474:11;:24;;;;-1:-1:-1;;;;;;16490:8:0;;;;;;:4;:8;;;;;;;;16489:9;16474:24;16466:33;;;;;;-1:-1:-1;;;;;16600:13:0;;16512:8;16600:13;;;:7;:13;;;;;;16512:8;;;;16600:13;;16596:162;;;16636:4;16630:10;;16596:162;;;-1:-1:-1;;;;;16662:11:0;;;;;;:7;:11;;;;;;;;16658:100;;;16697:4;16690:11;;16658:100;;;-1:-1:-1;16742:4:0;16658:100;16772:20;16783:4;16789:2;16772:10;:20::i;:::-;16768:644;;;16813:14;;;;16809:89;;16848:34;;-1:-1:-1;;;16848:34:0;;17233:2:1;16848:34:0;;;17215:21:1;17272:2;17252:18;;;17245:30;17311:26;17291:18;;;17284:54;17355:18;;16848:34:0;17031:348:1;16809:89:0;16916:3;:11;;;;16923:4;16916:11;16912:232;;;-1:-1:-1;;;;;16952:27:0;;;;;;:21;:27;;;;;;;;16951:28;:58;;;;-1:-1:-1;;;;;;16984:25:0;;;;;;:21;:25;;;;;;;;16983:26;16951:58;16947:182;;;17052:12;;17042:6;:22;;17034:75;;;;-1:-1:-1;;;17034:75:0;;17586:2:1;17034:75:0;;;17568:21:1;17625:2;17605:18;;;17598:30;17664:34;17644:18;;;17637:62;-1:-1:-1;;;17715:18:1;;;17708:38;17763:19;;17034:75:0;17384:404:1;17034:75:0;17176:9;;-1:-1:-1;;;;;17162:24:0;;;17176:9;;;;;17162:24;;;;:33;;;17191:4;17190:5;17162:33;17158:243;;;-1:-1:-1;;;;;17221:25:0;;;;;;:21;:25;;;;;;;;17216:170;;17305:14;;17295:6;17279:13;17289:2;17279:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;17271:95;;;;-1:-1:-1;;;17271:95:0;;17995:2:1;17271:95:0;;;17977:21:1;18034:2;18014:18;;;18007:30;18073:34;18053:18;;;18046:62;-1:-1:-1;;;18124:18:1;;;18117:40;18174:19;;17271:95:0;17793:406:1;17271:95:0;17428:4;17424:632;;;17454:6;;;;17449:596;;17485:19;;;;;;;17481:549;;;17529:28;17560:24;17578:4;17560:9;:24::i;:::-;17529:55;;17635:13;;17611:20;:37;17607:404;;17695:10;;17736:22;;;;17732:97;;;17793:13;;17783:6;;5210:5;;17793:13;17773:17;;-1:-1:-1;;;;;17783:6:0;17773:9;:17::i;:::-;:33;;;;:::i;:::-;17772:54;;;;:::i;:::-;17762:64;;17732:97;17883:7;17859:20;:31;17855:72;;17917:7;17894:30;;17855:72;17953:34;17966:20;17953:12;:34::i;:::-;17650:361;17607:404;17506:524;17481:549;18073:52;18090:4;18096:2;18100:6;18108:3;18113:4;18119:5;18073:16;:52::i;:::-;18066:59;16141:1992;-1:-1:-1;;;;;;;16141:1992:0:o;21809:753::-;21950:16;;21928:4;;21950:16;;;;;21945:228;;21983:28;22002:4;22008:2;21983:18;:28::i;:::-;22031:16;;;;;;;22030:17;:41;;;;;22051:20;22062:4;22068:2;22051:10;:20::i;:::-;22030:51;;;;;22076:5;22075:6;22030:51;22026:136;;;22102:44;;-1:-1:-1;;;22102:44:0;;18406:2:1;22102:44:0;;;18388:21:1;18445:2;18425:18;;;18418:30;18484:34;18464:18;;;18457:62;-1:-1:-1;;;18535:18:1;;;18528:32;18577:19;;22102:44:0;18204:398:1;22026:136:0;-1:-1:-1;;;;;22219:25:0;;22185:12;22219:25;;;:19;:25;;;;;;22200:4;;22219:25;;;:52;;-1:-1:-1;;;;;;22248:23:0;;;;;;:19;:23;;;;;;;;22219:52;22215:99;;;-1:-1:-1;22297:5:0;22215:99;-1:-1:-1;;;;;22326:13:0;;;;;;:7;:13;;;;;:23;;22343:6;;22326:13;:23;;22343:6;;22326:23;:::i;:::-;;;;-1:-1:-1;22360:22:0;;-1:-1:-1;22386:7:0;22385:55;;22434:6;22385:55;;;22397:34;22407:4;22413:3;22418:4;22424:6;22397:9;:34::i;:::-;-1:-1:-1;;;;;22451:11:0;;;;;;:7;:11;;;;;:29;;22360:80;;-1:-1:-1;22360:80:0;;22451:11;;;:29;;22360:80;;22451:29;:::i;:::-;;;;;;;;22513:2;-1:-1:-1;;;;;22498:34:0;22507:4;-1:-1:-1;;;;;22498:34:0;;22517:14;22498:34;;;;368:25:1;;356:2;341:18;;222:177;22498:34:0;;;;;;;;-1:-1:-1;22550:4:0;;21809:753;-1:-1:-1;;;;;;;;21809:753:0:o;15775:358::-;15876:6;;15844:4;;-1:-1:-1;;;;;15868:14:0;;;15876:6;;15868:14;;;;:43;;-1:-1:-1;15905:6:0;;-1:-1:-1;;;;;15899:12:0;;;15905:6;;15899:12;;15868:43;:79;;;;-1:-1:-1;15941:6:0;;-1:-1:-1;;;;;15941:6:0;15928:9;:19;;15868:79;:118;;;;-1:-1:-1;;;;;;15965:21:0;;;;;;:17;:21;;;;;;;;15964:22;15868:118;:159;;;;-1:-1:-1;;;;;;16004:23:0;;;;;;:17;:23;;;;;;;;16003:24;15868:159;:186;;;;-1:-1:-1;;;;;;16044:10:0;;5349:42;16044:10;;15868:186;:219;;;;-1:-1:-1;;;;;;16071:16:0;;;;15868:219;:257;;;;-1:-1:-1;;;;;;16104:21:0;;16120:4;16104:21;;15868:257;15861:264;15775:358;-1:-1:-1;;;15775:358:0:o;18141:2347::-;6649:6;:13;;-1:-1:-1;;6649:13:0;6658:4;6649:13;;;18224:30:::1;::::0;;::::1;::::0;::::1;::::0;;18247:7:::1;18224:30:::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;;::::0;::::1;::::0;-1:-1:-1;;;18224:30:0;::::1;::::0;::::1;::::0;;;;;;;-1:-1:-1;;;18224:30:0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;18224:30:0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;18224:30:0;::::1;::::0;;::::1;::::0;;;;;;18265:60:::1;;18307:7;;;18265:60;18361:4;18341:26;::::0;;;:11:::1;:26;::::0;;;;;;;18376:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;18376:9:0::1;18341:46:::0;;;;;;;;-1:-1:-1;;18341:67:0::1;18337:166;;18445:4;18425:26;::::0;;;:11:::1;:26;::::0;;;;;;;18460:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;18460:9:0::1;18425:46:::0;;;;;;;-1:-1:-1;;18425:66:0;;18337:166:::1;18515:17;18600:1;18580:6;:16;;;18536:60;;18560:6;:16;;;18537:39;;:20;:39;;;;:::i;:::-;18536:60;;;;:::i;:::-;18535:66;;;;:::i;:::-;18515:86:::0;-1:-1:-1;18612:15:0::1;18630:32;18515:86:::0;18630:20;:32:::1;:::i;:::-;18707:16;::::0;;18721:1:::1;18707:16:::0;;;;;::::1;::::0;;18612:50;;-1:-1:-1;18683:21:0::1;::::0;18707:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;18707:16:0::1;18683:40;;18752:4;18734;18739:1;18734:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;18734:23:0::1;;;-1:-1:-1::0;;;;;18734:23:0::1;;;::::0;::::1;18778:9;;;;;;;;;-1:-1:-1::0;;;;;18778:9:0::1;-1:-1:-1::0;;;;;18778:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18768:4;18773:1;18768:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18768:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;18811:9:::1;::::0;:186:::1;::::0;-1:-1:-1;;;18811:186:0;;:9:::1;::::0;;::::1;::::0;;::::1;::::0;:60:::1;::::0;:186:::1;::::0;18886:7;;18908:1:::1;::::0;18924:4;;18951::::1;::::0;18971:15:::1;::::0;18811:186:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;18807:233;;19022:7;;;;;;18807:233;19073:21;19052:18;19159:7:::0;19133:22:::1;19146:9:::0;19073:21;19133:22:::1;:::i;:::-;19132:34;;;;:::i;:::-;19105:61:::0;-1:-1:-1;19183:13:0;;19179:417:::1;;19217:9;::::0;19386:21;;19217:239:::1;::::0;-1:-1:-1;;;19217:239:0;;19294:4:::1;19217:239;::::0;::::1;20529:34:1::0;20579:18;;;20572:34;;;19346:1:0::1;20622:18:1::0;;;20615:34;;;20665:18;;;20658:34;-1:-1:-1;;;;;19386:21:0;;::::1;20708:19:1::0;;;20701:44;19426:15:0::1;20761:19:1::0;;;20754:35;19217:9:0::1;::::0;;::::1;;::::0;:25:::1;::::0;19250:16;;20463:19:1;;19217:239:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;-1:-1:-1::0;19217:239:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;19217:239:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;19213:372;;19563:7;;;;;;;;19213:372;-1:-1:-1::0;;19481:40:0::1;::::0;;21285:25:1;;;21341:2;21326:18;;21319:34;;;19481:40:0::1;::::0;-1:-1:-1;21258:18:1;19481:40:0::1;;;;;;;19213:372;19608:30;19622:16:::0;19608:30;::::1;:::i;:::-;;;19669:6;:16;;;19649:6;:16;;:36;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;19784:16:::1;::::0;::::1;::::0;19762:18:::1;::::0;::::1;::::0;19696:12:::1;::::0;-1:-1:-1;19696:12:0;;19748:52;;::::1;::::0;19749:31:::1;::::0;::::1;:10:::0;:31:::1;:::i;:::-;19748:52;;;;:::i;:::-;19837:7;::::0;19719:81;;-1:-1:-1;19811:22:0::1;::::0;19837:7;;::::1;-1:-1:-1::0;;;;;19837:7:0::1;19836:78;;19913:1;19836:78;;;19894:6;:16;;;19862:48;;19876:6;:14;;;19863:27;;:10;:27;;;;:::i;:::-;19862:48;;;;:::i;:::-;19811:103:::0;-1:-1:-1;19925:24:0::1;19966:35;19811:103:::0;19966:18;:35:::1;:::i;:::-;19952:50;::::0;:10;:50:::1;:::i;:::-;19925:77:::0;-1:-1:-1;20017:20:0;;20013:133:::1;;20067:11;:21:::0;:67:::1;::::0;-1:-1:-1;;;;;20067:21:0;;::::1;::::0;20124:5:::1;::::0;20101:16;;20067:67:::1;::::0;;;20101:16;20067:21;20124:5;20067:67:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;20054:80:0;;-1:-1:-1;;20013:133:0::1;20160:22:::0;;20156:139:::1;;20212:23:::0;;:71:::1;::::0;-1:-1:-1;;;;;20212:23:0;;::::1;::::0;20273:5:::1;::::0;20248:18;;20212:71:::1;::::0;;;20248:18;20212:23;20273:5;20212:71:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;20199:84:0;;-1:-1:-1;;20156:139:0::1;20309:18:::0;;20305:176:::1;;20354:9;;;;;;;;;-1:-1:-1::0;;;;;20354:9:0::1;-1:-1:-1::0;;;;;20354:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20344:4;20349:1;20344:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20344:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;20395:7:::1;::::0;20385;;20395;;;::::1;::::0;;::::1;::::0;20385:4;;20390:1:::1;::::0;20385:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;20385:17:0;;::::1;:7;::::0;;::::1;::::0;;;;;:17;20449:19;;20417:52:::1;::::0;20427:4;;20433:14;;20449:19:::1;20417:9;:52::i;:::-;18213:2275;;;;;;;;;;6673:1;-1:-1:-1::0;6685:6:0;:14;;-1:-1:-1;;6685:14:0;;;18141:2347::o;20959:435::-;21042:16;;;;;;;21041:17;21033:65;;;;-1:-1:-1;;;21033:65:0;;21998:2:1;21033:65:0;;;21980:21:1;22037:2;22017:18;;;22010:30;22076:34;22056:18;;;22049:62;-1:-1:-1;;;22127:18:1;;;22120:33;22170:19;;21033:65:0;21796:399:1;21033:65:0;21114:20;21125:4;21131:2;21114:10;:20::i;:::-;21113:21;:37;;;;-1:-1:-1;21144:6:0;;-1:-1:-1;;;;;21138:12:0;;;21144:6;;21138:12;21113:37;21109:278;;;-1:-1:-1;;;;;21167:23:0;;;;;;:17;:23;;;;;;;;:30;;21193:4;-1:-1:-1;;21167:30:0;;;;;;;;21212:19;:25;;;;;;:32;;;;;;;;;;21259:16;:23;;21167:30;-1:-1:-1;;21259:23:0;;;;;;;;21297:19;:26;;;;;;;;;;21343:32;1741:41:1;;;21343:32:0;;1714:18:1;21343:32:0;1601:187:1;21109:278:0;20959:435;;:::o;22570:982::-;22678:30;;;;;;;;22701:7;22678:30;;;;;;;;;;;;;;;;-1:-1:-1;;;22678:30:0;;;;;;;;;;;-1:-1:-1;;;22678:30:0;;;;;;;;-1:-1:-1;;;22678:30:0;;;;;;;;-1:-1:-1;;;22678:30:0;;;;;;;;;22658:7;;;22748:205;;;;-1:-1:-1;22785:9:0;:16;;;22748:205;;;22823:4;22819:134;;;-1:-1:-1;22857:9:0;:17;;;;;;22819:134;;;-1:-1:-1;22920:9:0;:21;-1:-1:-1;;;22920:21:0;;;;22819:134;22963:17;5210:5;22983:19;22992:10;22983:6;:19;:::i;:::-;:38;;;;:::i;:::-;22963:58;;23032:18;23096:6;:16;;;23082:6;:11;;;:30;;;;:::i;:::-;23053:60;;23066:6;:11;;;23054:23;;:9;:23;;;;:::i;:::-;23053:60;;;;:::i;:::-;23032:81;-1:-1:-1;23124:15:0;23142:22;23032:81;23142:9;:22;:::i;:::-;23124:40;-1:-1:-1;23179:11:0;;23175:135;;23223:4;23207:22;;;;:7;:22;;;;;:33;;23233:7;;23207:22;:33;;23233:7;;23207:33;:::i;:::-;;;;-1:-1:-1;;23260:38:0;;368:25:1;;;23283:4:0;;-1:-1:-1;;;;;23260:38:0;;;;;356:2:1;341:18;23260:38:0;;;;;;;23175:135;23324:14;;23320:167;;23366:10;23355:7;;:21;;;;;;;:::i;:::-;;;;;;;;23407:10;23391:12;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;23437:38:0;;368:25:1;;;23460:1:0;;-1:-1:-1;;;;;23437:38:0;;;;;356:2:1;341:18;23437:38:0;;;;;;;23320:167;23526:18;23535:9;23526:6;:18;:::i;:::-;23519:25;22570:982;-1:-1:-1;;;;;;;;;;22570:982:0:o;20496:455::-;20607:9;;:187;;-1:-1:-1;;;20607:187:0;;:9;;;;-1:-1:-1;;;;;20607:9:0;;:60;;20675:6;;20607:187;;20707:1;;20723:4;;20742:11;;20768:15;;20607:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20603:341;;20496:455;;;:::o;20603:341::-;20826:7;;;;;;;;;-1:-1:-1;;;;;20826:7:0;-1:-1:-1;;;;;20814:19:0;:4;20819:1;20814:7;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;20814:19:0;;20810:83;;;20871:6;20854:13;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;20810:83:0;20496:455;;;:::o;774:597:1:-;886:4;915:2;944;933:9;926:21;976:6;970:13;1019:6;1014:2;1003:9;999:18;992:34;1044:1;1054:140;1068:6;1065:1;1062:13;1054:140;;;1163:14;;;1159:23;;1153:30;1129:17;;;1148:2;1125:26;1118:66;1083:10;;1054:140;;;1212:6;1209:1;1206:13;1203:91;;;1282:1;1277:2;1268:6;1257:9;1253:22;1249:31;1242:42;1203:91;-1:-1:-1;1355:2:1;1334:15;-1:-1:-1;;1330:29:1;1315:45;;;;1362:2;1311:54;;774:597;-1:-1:-1;;;774:597:1:o;1793:131::-;-1:-1:-1;;;;;1868:31:1;;1858:42;;1848:70;;1914:1;1911;1904:12;1848:70;1793:131;:::o;1929:247::-;1988:6;2041:2;2029:9;2020:7;2016:23;2012:32;2009:52;;;2057:1;2054;2047:12;2009:52;2096:9;2083:23;2115:31;2140:5;2115:31;:::i;2181:315::-;2249:6;2257;2310:2;2298:9;2289:7;2285:23;2281:32;2278:52;;;2326:1;2323;2316:12;2278:52;2365:9;2352:23;2384:31;2409:5;2384:31;:::i;:::-;2434:5;2486:2;2471:18;;;;2458:32;;-1:-1:-1;;;2181:315:1:o;2501:456::-;2578:6;2586;2594;2647:2;2635:9;2626:7;2622:23;2618:32;2615:52;;;2663:1;2660;2653:12;2615:52;2702:9;2689:23;2721:31;2746:5;2721:31;:::i;:::-;2771:5;-1:-1:-1;2828:2:1;2813:18;;2800:32;2841:33;2800:32;2841:33;:::i;:::-;2501:456;;2893:7;;-1:-1:-1;;;2947:2:1;2932:18;;;;2919:32;;2501:456::o;2962:248::-;3030:6;3038;3091:2;3079:9;3070:7;3066:23;3062:32;3059:52;;;3107:1;3104;3097:12;3059:52;-1:-1:-1;;3130:23:1;;;3200:2;3185:18;;;3172:32;;-1:-1:-1;2962:248:1:o;3404:159::-;3471:20;;3531:6;3520:18;;3510:29;;3500:57;;3553:1;3550;3543:12;3500:57;3404:159;;;:::o;3568:328::-;3642:6;3650;3658;3711:2;3699:9;3690:7;3686:23;3682:32;3679:52;;;3727:1;3724;3717:12;3679:52;3750:28;3768:9;3750:28;:::i;:::-;3740:38;;3797:37;3830:2;3819:9;3815:18;3797:37;:::i;:::-;3787:47;;3853:37;3886:2;3875:9;3871:18;3853:37;:::i;:::-;3843:47;;3568:328;;;;;:::o;3901:160::-;3966:20;;4022:13;;4015:21;4005:32;;3995:60;;4051:1;4048;4041:12;4066:315;4131:6;4139;4192:2;4180:9;4171:7;4167:23;4163:32;4160:52;;;4208:1;4205;4198:12;4160:52;4247:9;4234:23;4266:31;4291:5;4266:31;:::i;:::-;4316:5;-1:-1:-1;4340:35:1;4371:2;4356:18;;4340:35;:::i;:::-;4330:45;;4066:315;;;;;:::o;4386:180::-;4445:6;4498:2;4486:9;4477:7;4473:23;4469:32;4466:52;;;4514:1;4511;4504:12;4466:52;-1:-1:-1;4537:23:1;;4386:180;-1:-1:-1;4386:180:1:o;4831:553::-;4932:6;4940;4948;5001:2;4989:9;4980:7;4976:23;4972:32;4969:52;;;5017:1;5014;5007:12;4969:52;5056:9;5043:23;5075:31;5100:5;5075:31;:::i;:::-;5125:5;-1:-1:-1;5182:2:1;5167:18;;5154:32;5195:33;5154:32;5195:33;:::i;:::-;5247:7;-1:-1:-1;5306:2:1;5291:18;;5278:32;5319:33;5278:32;5319:33;:::i;:::-;5371:7;5361:17;;;4831:553;;;;;:::o;5389:248::-;5451:6;5459;5512:2;5500:9;5491:7;5487:23;5483:32;5480:52;;;5528:1;5525;5518:12;5480:52;5551:26;5567:9;5551:26;:::i;6249:388::-;6317:6;6325;6378:2;6366:9;6357:7;6353:23;6349:32;6346:52;;;6394:1;6391;6384:12;6346:52;6433:9;6420:23;6452:31;6477:5;6452:31;:::i;:::-;6502:5;-1:-1:-1;6559:2:1;6544:18;;6531:32;6572:33;6531:32;6572:33;:::i;:::-;6624:7;6614:17;;;6249:388;;;;;:::o;6642:474::-;6732:6;6740;6748;6756;6764;6817:3;6805:9;6796:7;6792:23;6788:33;6785:53;;;6834:1;6831;6824:12;6785:53;6857:28;6875:9;6857:28;:::i;:::-;6847:38;;6904:37;6937:2;6926:9;6922:18;6904:37;:::i;:::-;6894:47;;6960:37;6993:2;6982:9;6978:18;6960:37;:::i;:::-;6950:47;;7016:37;7049:2;7038:9;7034:18;7016:37;:::i;:::-;7006:47;;7072:38;7105:3;7094:9;7090:19;7072:38;:::i;:::-;7062:48;;6642:474;;;;;;;;:::o;7655:385::-;7741:6;7749;7757;7765;7818:3;7806:9;7797:7;7793:23;7789:33;7786:53;;;7835:1;7832;7825:12;7786:53;-1:-1:-1;;7858:23:1;;;7928:2;7913:18;;7900:32;;-1:-1:-1;7979:2:1;7964:18;;7951:32;;8030:2;8015:18;8002:32;;-1:-1:-1;7655:385:1;-1:-1:-1;7655:385:1:o;8045:127::-;8106:10;8101:3;8097:20;8094:1;8087:31;8137:4;8134:1;8127:15;8161:4;8158:1;8151:15;8177:422;8266:1;8309:5;8266:1;8323:270;8344:7;8334:8;8331:21;8323:270;;;8403:4;8399:1;8395:6;8391:17;8385:4;8382:27;8379:53;;;8412:18;;:::i;:::-;8462:7;8452:8;8448:22;8445:55;;;8482:16;;;;8445:55;8561:22;;;;8521:15;;;;8323:270;;;8327:3;8177:422;;;;;:::o;8604:806::-;8653:5;8683:8;8673:80;;-1:-1:-1;8724:1:1;8738:5;;8673:80;8772:4;8762:76;;-1:-1:-1;8809:1:1;8823:5;;8762:76;8854:4;8872:1;8867:59;;;;8940:1;8935:130;;;;8847:218;;8867:59;8897:1;8888:10;;8911:5;;;8935:130;8972:3;8962:8;8959:17;8956:43;;;8979:18;;:::i;:::-;-1:-1:-1;;9035:1:1;9021:16;;9050:5;;8847:218;;9149:2;9139:8;9136:16;9130:3;9124:4;9121:13;9117:36;9111:2;9101:8;9098:16;9093:2;9087:4;9084:12;9080:35;9077:77;9074:159;;;-1:-1:-1;9186:19:1;;;9218:5;;9074:159;9265:34;9290:8;9284:4;9265:34;:::i;:::-;9335:6;9331:1;9327:6;9323:19;9314:7;9311:32;9308:58;;;9346:18;;:::i;:::-;9384:20;;8604:806;-1:-1:-1;;;8604:806:1:o;9415:140::-;9473:5;9502:47;9543:4;9533:8;9529:19;9523:4;9502:47;:::i;9560:217::-;9600:1;9626;9616:132;;9670:10;9665:3;9661:20;9658:1;9651:31;9705:4;9702:1;9695:15;9733:4;9730:1;9723:15;9616:132;-1:-1:-1;9762:9:1;;9560:217::o;9782:125::-;9822:4;9850:1;9847;9844:8;9841:34;;;9855:18;;:::i;:::-;-1:-1:-1;9892:9:1;;9782:125::o;9912:341::-;10114:2;10096:21;;;10153:2;10133:18;;;10126:30;-1:-1:-1;;;10187:2:1;10172:18;;10165:47;10244:2;10229:18;;9912:341::o;10258:168::-;10298:7;10364:1;10360;10356:6;10352:14;10349:1;10346:21;10341:1;10334:9;10327:17;10323:45;10320:71;;;10371:18;;:::i;:::-;-1:-1:-1;10411:9:1;;10258:168::o;10848:128::-;10888:3;10919:1;10915:6;10912:1;10909:13;10906:39;;;10925:18;;:::i;:::-;-1:-1:-1;10961:9:1;;10848:128::o;11333:224::-;11372:3;11400:6;11433:2;11430:1;11426:10;11463:2;11460:1;11456:10;11494:3;11490:2;11486:12;11481:3;11478:21;11475:47;;;11502:18;;:::i;:::-;11538:13;;11333:224;-1:-1:-1;;;;11333:224:1:o;12698:425::-;12900:2;12882:21;;;12939:2;12919:18;;;12912:30;12978:34;12973:2;12958:18;;12951:62;13049:31;13044:2;13029:18;;13022:59;13113:3;13098:19;;12698:425::o;15048:410::-;15250:2;15232:21;;;15289:2;15269:18;;;15262:30;15328:34;15323:2;15308:18;;15301:62;-1:-1:-1;;;15394:2:1;15379:18;;15372:44;15448:3;15433:19;;15048:410::o;18739:127::-;18800:10;18795:3;18791:20;18788:1;18781:31;18831:4;18828:1;18821:15;18855:4;18852:1;18845:15;18871:251;18941:6;18994:2;18982:9;18973:7;18969:23;18965:32;18962:52;;;19010:1;19007;19000:12;18962:52;19042:9;19036:16;19061:31;19086:5;19061:31;:::i;19127:461::-;19180:3;19218:5;19212:12;19245:6;19240:3;19233:19;19271:4;19300:2;19295:3;19291:12;19284:19;;19337:2;19330:5;19326:14;19358:1;19368:195;19382:6;19379:1;19376:13;19368:195;;;19447:13;;-1:-1:-1;;;;;19443:39:1;19431:52;;19503:12;;;;19538:15;;;;19479:1;19397:9;19368:195;;;-1:-1:-1;19579:3:1;;19127:461;-1:-1:-1;;;;;19127:461:1:o;19593:582::-;19892:6;19881:9;19874:25;19935:6;19930:2;19919:9;19915:18;19908:34;19978:3;19973:2;19962:9;19958:18;19951:31;19855:4;19999:57;20051:3;20040:9;20036:19;20028:6;19999:57;:::i;:::-;-1:-1:-1;;;;;20092:32:1;;;;20087:2;20072:18;;20065:60;-1:-1:-1;20156:3:1;20141:19;20134:35;19991:65;19593:582;-1:-1:-1;;;19593:582:1:o;20800:306::-;20888:6;20896;20904;20957:2;20945:9;20936:7;20932:23;20928:32;20925:52;;;20973:1;20970;20963:12;20925:52;21002:9;20996:16;20986:26;;21052:2;21041:9;21037:18;21031:25;21021:35;;21096:2;21085:9;21081:18;21075:25;21065:35;;20800:306;;;;;:::o;21364:217::-;21403:4;21432:6;21488:10;;;;21458;;21510:12;;;21507:38;;;21525:18;;:::i;:::-;21562:13;;21364:217;-1:-1:-1;;;21364:217:1:o;22200:518::-;22479:6;22468:9;22461:25;22522:3;22517:2;22506:9;22502:18;22495:31;22442:4;22543:57;22595:3;22584:9;22580:19;22572:6;22543:57;:::i;:::-;-1:-1:-1;;;;;22636:32:1;;;;22631:2;22616:18;;22609:60;-1:-1:-1;22700:2:1;22685:18;22678:34;22535:65;22200:518;-1:-1:-1;;22200:518:1:o
Swarm Source
ipfs://10e112bdf439a0d6f048dfb74761d24c28568c7abe4ceeeeb45a5b77674ae39d
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.